【发布时间】:2019-06-29 19:35:36
【问题描述】:
我对 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:
<?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.';
?>
它保存到数据库中,但是每次都执行ajax的错误函数。怎么了?
【问题讨论】:
-
你可能有问题 var 作为对象中的键,因为它是关键字,尝试
'var': text}这可能会在 IE 中失败,不确定其他浏览器,Chrome 工作正常。 -
首先检查你得到的错误可能是成功的错误。因为
'error'.includes('error')是真的。 -
当出现问题时,您只需在 php 和 js 代码中返回单词错误,从而阻止您找出问题所在。记录正确的错误消息,你会更清楚发生了什么。
-
不,是error的错误:function(xhr, textStatus, errorThrown) { alert("!!! Error !!!"); }。在实际代码中,这是另一条消息。
-
另外,你的脚本容易被SQL注入,请考虑使用mysqli prepare语句。
标签: javascript php mysql ajax