jquery ajax到php脚本不保存数据

时间:2015-03-26 23:21:12

标签: javascript php jquery mysql ajax

我有以下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"成功"警告,所以它打了剧本,但我不确定为什么信息没有被插入。

表数据类型是htmlcsstosaveactualhtml列的中等文本,而userid是int(不是主键,这是另一个表的外键)

所以我添加了一个错误提醒,这是输出

  
    

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在' margin-0'>附近使用正确的语法。
                            < HEAD>                             < /头>
                            < body cl'在第1行

  

2 个答案:

答案 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:

  1. mysqli prepare
  2. mysqli bind_param
  3. mysqli execute