我在使用PDO访问数据库的php脚本中遇到了一个问题。当我在PDO中使用prepare()
或execute()
时,似乎无法对字符串进行转义。我已经寻找了很多地方,但都没有找到答案,因为无论我去哪里查看,都说PDO会自动转义字符串。
这是我的代码:
$statement = $db->prepare("INSERT INTO Table (ID, Column1, Column2) VALUES (NULL, '$var1', '$var2')");
$query->execute();
假设有 $var1 = "abc'def"
和$var2 = "123"
,问题是我收到了错误信息,因为引号没有被转义。
错误: SQLSTATE[42000]: 语法错误或访问冲突: 1064 在你的MySQL服务器版本对应的手册中检查使用语法时发生了错误,'def','123')' 在第1行
我也尝试过使用 query()
方法,但是引号的问题仍然存在。
我真的不理解这个问题,感到非常沮丧。谢谢任何帮助。