我有这样的表格:
<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行但代码失败,我没有得到任何错误我的行没有更新)。我知道这是关于引用的东西,但我不知道该怎么做。感谢
答案 0 :(得分:4)
问题出在服务器上的PHP代码中,而不是HTML或JavaScript中。
您可能直接将提交的数据值写入SQL查询,是吗?:
$query = sprintf("SELECT * FROM users WHERE user='%s'", $user);
您需要使用prepared statements,或使用mysql_real_escape_string()
来逃避您的价值观:
$query = sprintf("SELECT * FROM users WHERE user='%s'",
mysql_real_escape_string($user));