Javascript ajax没有什么问题。执行错误函数

Javascript ajax没有什么问题。执行错误函数,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,我对ajax和mysql有点问题。 我想通过ajax将相同的数据保存到数据库中 Javascript: $.ajax({ type : "POST", url : url_save, async : false, data : { item : nr, var : text }, success: function(result_save){ if (result_save.includes('Error')) {

我对ajax和mysql有点问题。 我想通过ajax将相同的数据保存到数据库中

Javascript:

$.ajax({
    type : "POST",
    url  : url_save,
    async : false,
    data : { item : nr, var : text },
    success: function(result_save){  
        if (result_save.includes('Error')) { 
          alert("!!!  Error  !!!");
        }
    },
    error: function(xhr, textStatus, errorThrown) {
        alert("!!!  Error  !!!");
    }
});
我的PHP文件如下所示: PHP:

一些观察结果:

  • jcubic是正确的-您不想使用JS关键字作为参数名

  • catcon也是正确的。使用预先准备好的语句比直接将变量读入SQL文本要好得多

  • 即使mysqli_query()返回0,您仍然希望执行mysql_close($db),不是吗

  • 你也想知道具体的错误,是吗

建议:

PHP:


您可能会对var作为key-in-object有问题,因为它是关键字,try
'var':text}
这可能会在IE中失败,因为不确定其他浏览器,Chrome工作正常。首先检查您得到的错误可能是成功的错误。因为
'error'.includes('error')
是真的。当出现问题阻止您找出问题所在时,您只需在php和js代码中返回error一词。记录正确的错误消息,您将更加了解发生的情况。不,这是错误的错误:函数(xhr,textStatus,errorhorn){alert(!!!error!!!”);}。在实际代码中,这是另一个消息。此外,您的脚本易受SQL注入的影响,请考虑使用MySQLReavy语句。
<?php
    require "config.inc.php";
$db = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die ('Error');
$db->set_charset("utf8");
$sql="INSERT INTO tbl (item, var) VALUES ('$_POST[item]','$_POST[var]')";
if (!mysqli_query($db,$sql))
{
    return 'Error';
    die();
}

mysql_close($db);
return 'i.O.';
?>
<?php
  require "config.inc.php";
  $conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
  if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
  }
  $stmt = $conn->prepare("INSERT INTO tbl (item, var) VALUES (?, ?)");
  $stmt->bind_param("is", $_POST[item_id], $_POST[item_value]);
  if (!$stmt->execute()) {
    $result =  "Execute failed: (" . $stmt->errno . "): " . $stmt->error;
  }
  $stmt->close();
  $conn->close();
  return ($result) ? 'Success' : $result;
  ...
$.ajax({
    type : "POST",
    url  : url_save,
    async : false,
    data : { item_id: nr, item_value: text },
    success: function(result_save){  
        if (result_save === 'Success') {
          console.log('Insert was successful', nr, value);
        } else {
          alert('mySql Error: ', JSON.stringify(result_save));
        }
    },
    error: function(xhr, textStatus, errorThrown) {
        alert('XHR Exception: ' + textStatus + ', ' + JSON.stringify(errorThrown));
    }
});