Mysql 撇号生成SQL错误
我创建了一个表单来收集用户数据,包括地址,并将其写入Mysql数据库。 在用户表中,Mysql 撇号生成SQL错误,mysql,sql,Mysql,Sql,我创建了一个表单来收集用户数据,包括地址,并将其写入Mysql数据库。 在用户表中,Street是一个Varchar(255)。 一切都很好,除非名字里有撇号,在这种情况下我有 以下SQL警告: 例如,如果我在街道的名称中写上“Francesco D'assisi 24” 错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“assisi 24”附近使用的正确语法。 知道如何避免吗?通过存储过程参数传递变量。需要转义数据:使用函数mysql\u real\u escape\
Street
是一个Varchar(255)
。
一切都很好,除非名字里有撇号,在这种情况下我有
以下SQL警告:
例如,如果我在街道的名称中写上“Francesco D'assisi 24”
错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“assisi 24”附近使用的正确语法。
知道如何避免吗?通过存储过程参数传递变量。需要转义数据:使用函数mysql\u real\u escape\u 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();
$data=它被称为sql注入,使用准备好的语句。