gpt4 book ai didi

php - PDO 不转义字符串引号

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:59 24 4
gpt4 key购买 nike

我在使用 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" 问题是我收到一条错误消息,因为引号没有转义。

Error : SQLSTATE[42000]: Syntax error or access violation: 1064 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 'def', '123')' at line 1

我也尝试过使用 query() 方法,但使用引号的问题相同。我真的不明白,这令人沮丧。感谢您的帮助。

最佳答案

试试这个:

# Took out ID, as it should be auto_increment and handled by database
$statement = $db->prepare("INSERT INTO Table (Column1, Column2) VALUES (:col1, :col2)");

$statement->bindValue(':col1', $var1, PDO::PARAM_STR);
$statement->bindValue(':col2', $var2, PDO::PARAM_INT);

$statement->execute();

关于php - PDO 不转义字符串引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com