gpt4 book ai didi

PHP PDO - 关闭语句 - 不能创建超过 max_prepared_stmt_count 个语句

转载 作者:行者123 更新时间:2023-11-30 22:13:24 25 4
gpt4 key购买 nike

如何使用 PDO 关闭语句?如果我检查一般的 MySQL 日志,我永远不会遇到关闭命令。 (命令类型:关闭 stmt)。

截至目前,MySQL 在其中一些查询后抛出“无法创建超过 max_prepared_stmt_count 个语句”。

奇怪的是 PDO 会准备查询,即使没有什么可准备的。为什么不直接执行查询 (command_type: Execute)?

片段

// Executes a SQL query and returns the PDO statement
$statement = $pdo->query(sprintf('CALL TEST_PROCEDURE(%s)', implode(',', $parameters)));

// Retrieve the result of the query
$result = current($statement->fetchAll(PDO::FETCH_OBJ));

$statement = null;

一般日志

select * from mysql.general_log where argument like "%call%" \G;
...
event_time: 2016-09-01 10:34:40
user_host: root[root] @ localhost [127.0.0.1]
thread_id: 4111
server_id: 0
command_type: Prepare
argument: CALL TEST_PROCEDURE(234,'989',1,'3353' ....)
*************************** 2. row ***************************
command_type: Execute
argument: CALL TEST_PROCEDURE(234,'989',1,'3353' ....)

最佳答案

您可以通过调用 $statement->closeCursor();

显式关闭连接

关于PHP PDO - 关闭语句 - 不能创建超过 max_prepared_stmt_count 个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269577/

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