我有以下jQuery ajax调用php脚本:
actualHtml = $('div').html(); // could this line be causing an issue?
$.ajax({
type: 'POST',
url: 'save-html-css-action.php',
data: {
'htmlTextToSave': htmlTextToSave,
'actualHtml': actualHtml,
'userId':userId
},
success: function(msg){
alert(msg);
}
});
PHP:
$htmlCssToSave = $_POST['htmlTextToSave'];
$userId = $_POST['userId'];
$actualHtml = $_POST['actualHtml'];
$mysqli = new mysqli($servername, $sqlusername, $sqlpassword, $dbname);
/* check connection */
if (mysqli_connect_errno()) {
//printf("Connect failed: %s\n", mysqli_connect_error());
echo "Connection failed: ".mysqli_connect_error();
exit();
}
$mysqli->query("INSERT INTO user_saved_data (user_html_css_code, dd_id, actual_html) values ('".$htmlCssToSave."',".$userId.",'".$actualHtml."')");
echo "success";
/* close connection */
$mysqli->close();
但是当我检查数据库时,数据不存在。我在jquery/php
组合中做错了什么(意思是ajax调用)?我得到了一个javascript"成功"警告,所以它打了剧本,但我不确定为什么信息没有被插入。
表数据类型是htmlcsstosave
和actualhtml
列的中等文本,而userid是int(不是主键,这是另一个表的外键)
所以我添加了一个错误提醒,这是输出
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在' margin-0'>附近使用正确的语法。
< HEAD> < /头>
< body cl'在第1行
答案 0 :(得分:3)
您可以为user_saved_data表发布CREATE TABLE语句吗?
一般来说,我建议只追踪它并查看数据丢失的位置。
例如,您可以回显您正在生成的查询并在MySQL中手动运行吗?您可能在生成的SQL中出现语法错误...
答案 1 :(得分:3)
正如我们所讨论的,问题在于转发和清理数据。如果您使用预准备语句,它将为您处理。让我们来看看它是如何工作的:
准备声明:
$stmt = $mysqli->prepare("INSERT INTO user_saved_data (user_html_css_code, dd_id, actual_html) values (?,?,?)");
绑定参数:
$stmt->bind_param('sis', $htmlCssToSave, $userId, $actualHtml);
然后执行你的陈述:
$stmt->execute();
然后你应该好好去。准备好的声明现在应该为您处理数据清理。
Resouces: