撇号生成SQL错误

时间:2014-02-15 18:20:04

标签: mysql sql

我创建了一个表单来收集用户数据,包括地址并将它们写在Mysql DB中。 在用户表格中,StreetVarchar (255)。 一切正常,除非在名称街上有撇号,在这种情况下我有 以下SQL警告:

例如,如果在Street名称中我放了“Francesco D'assisi 24”

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'assisi 24'

任何想法如何避免它?

2 个答案:

答案 0 :(得分:0)

通过存储过程参数传递变量。

答案 1 :(得分:0)

需要转义数据:使用函数mysql_real_escape_string(或其他库中的类似物),或使用PDO和参数。

例如:

$data = <<<TXT
Francesco D'assisi 24
TXT;

$data = mysql_real_escape_string($data);
mysql_query("INSET INTO table VALUES ('$data')") or die mysql_error();