0

我有这个表格:

<form name="myForm" action="#">
     <input type="text" name="firstField" />
     <input type="text" name="secondField" />
     <input type="submit" name="submitButton" />
</form>

我有一个ajax请求:

$('input[type="submit"]').click(function(){
       var serialized = $('form').serialize();
       //ajax request
       $.ajax({
                type : "POST",
                url : "takeAction.php",
                data : serialized,
                succes : function(){
                    alert('done');
                }
       }); 
});

问题是,如果我的任何字段值包含“'”,例如(谁是老板)我的 ajax 请求无法完成(我正在尝试更新 mysql 行但代码失败,我没有收到任何错误,只是我的行未更新)。我知道这是关于报价的事情,但我不知道该怎么做。谢谢

4

1 回答 1

4

问题在于服务器上的 PHP 代码,而不是 HTML 或 JavaScript。

您可能正在将提交的数据值直接写入 SQL 查询,是吗?:

$query = sprintf("SELECT * FROM users WHERE user='%s'", $user);

您需要使用准备好的语句,或使用mysql_real_escape_string()来转义您的值:

$query = sprintf("SELECT * FROM users WHERE user='%s'",
                  mysql_real_escape_string($user));
于 2009-10-25T14:33:17.353 回答