Javascript ajax没有什么问题。执行错误函数
我对ajax和mysql有点问题。 我想通过ajax将相同的数据保存到数据库中 Javascript: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({
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),不是吗
- 你也想知道具体的错误,是吗
您可能会对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));
}
});