【发布时间】:2012-03-29 06:49:42
【问题描述】:
我在使用 PDO 访问我的数据库的 php 脚本中遇到问题。当我在 PDO 中使用prepare()或execute()时,我似乎无法让 PDO 转义我的字符串。我已经看遍了,我还没有找到这个问题的答案,因为我到处都说 PDO 会自动转义字符串。
这是我的代码:
$statement = $db->prepare("INSERT INTO Table (ID, Column1, Column2) VALUES (NULL, '$var1', '$var2')");
$query->execute();
让我们承认 $var1 = "abc'def" 和 $var2 = "123" 问题是我收到一条错误消息,因为引用没有转义。
错误:SQLSTATE[42000]:语法错误或访问冲突:1064 你 您的 SQL 语法有错误;检查对应的手册 您的 MySQL 服务器版本,以便在“def”附近使用正确的语法, '123')' 在第 1 行
我也尝试过使用query() 方法,但与引号相同的问题。
我真的不明白,这很令人沮丧。感谢您的帮助。
【问题讨论】:
-
查看examples。