gpt4 book ai didi

php - PDO 参数化查询的工作方式

转载 作者:可可西里 更新时间:2023-11-01 12:31:07 29 4
gpt4 key购买 nike

请仔细阅读问题。这不是通常的愚蠢“我的代码不起作用!!!”问题。

当我运行此代码时出现预期错误

try {
$sth = $dbh->prepare("SELECT id FROM users WHERE name INN(?,?) ");
$sth->execute(array("I'm","d'Artagnan"));
} catch (PDOException $e) {
echo $e->getMessage();
}

我收到此错误消息

You have an error in your SQL syntax ... near 'INN('I\'m','d\'Artagnan')' at line 1

但多年来我一直认为查询和数据分别发送到服务器并且永远不会干扰。因此我有一些问题(虽然我怀疑有人得到答案......)

  1. 它从哪里获得如此熟悉的字符串表示形式 - 引用和转义?它是专门用于报告错误还是实际查询的一部分?
  2. 实际效果如何?它是否用数据替换占位符?
  3. 有没有办法获取整个查询,而不仅仅是其中的一小部分,以用于调试目的?

更新

mysqli 按预期执行:它抛出一个错误说 near 'INN(?,?)'

最佳答案

尝试添加

$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

;)

关于php - PDO 参数化查询的工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3727186/

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