gpt4 book ai didi

php - 准备语句只准备一次?

转载 作者:行者123 更新时间:2023-11-29 04:24:49 25 4
gpt4 key购买 nike

数据库连接:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass,
array(PDO::ATTR_PERSISTENT => true));

声明的准备:

$stmt = $db->prepare('SELECT * FROM foo',
array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));

SELECT * FROM foo 语句是否只准备一次,然后存储在 MySQL 服务器上以供 PHP 脚本的所有后续调用使用?还是每次调用PHP脚本都要重新准备?

最佳答案

很遗憾,答案无关紧要。

即使准备好的语句在持久连接的整个生命周期内保持准备状态,PHP 也无法在当前脚本结束后引用它。鉴于语句句柄无论如何最终都会超出范围,因此即使语句可以持续存在,它也可能不会。这是猜测,但 PDO 很可能会在这里自行清理。

真正的问题是 PDO, by default, emulates prepared statements .也就是说,它对占位符进行本地转义和替换。这意味着服务器永远不会看到真正的准备、绑定(bind)和执行。如果您想使用真正的准备,请关闭仿真。

关于php - 准备语句只准备一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068595/

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