首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
请教swoole 使用原声的pdo 连接池当进行压力测试的时候会出现大量的SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active
### 问题描述 SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. ### Swoole版本,PHP版本,以及操作系统版本信息 php8.1 ### 相关代码 ```php $stmt = $this->PDOconnection->prepare($sql); $stmt->execute($bind); $data = $stmt->fetchAll(); $stmt->closeCursor(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 网上找了一些说法都不管用,请问有没有什么办法解决,压测下出错概率相当高
发布于3年前 · 53 次浏览 · 来自
提问
amle
### 问题描述 SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. ### Swoole版本,PHP版本,以及操作系统版本信息 php8.1 ### 相关代码 ```php $stmt = $this->PDOconnection->prepare($sql); $stmt->execute($bind); $data = $stmt->fetchAll(); $stmt->closeCursor(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 网上找了一些说法都不管用,请问有没有什么办法解决,压测下出错概率相当高
赞
1
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2023-02-07
Rango
这是因为连接池分配的 PDO 对象是随机的,你的程序中使用了预处理,`Statement` 对象与 `PDOConnection` 对象不一致导致。 建议自行实现连接池,或者使用短连接,以保证 `Statement` 与 `PDOConnection` 对象是同一个 session
赞
0
回复