我是靠谱客的博主 时尚小鸽子,这篇文章主要介绍ThinkPHP SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Altern,现在分享给大家,希望可以做个参考。

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.


TinkPHP 报错,由于你SQL语句中有多条操作语句,会报此等错误提示。


解决办法:
在数据库配置文件中添加配置
复制代码
1
2
3
4
5
// 数据库连接参数 'params' => [ 'MYSQL_ATTR_USE_BUFFERED_QUERY' => true, ],

而官方文档是这样写的

连接参数

可以针对不同的连接需要添加数据库的连接参数(具体的连接参数可以参考PHP手册),内置采用的参数包括如下:

复制代码
1
2
3
4
5
6
7
8
9
PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, PDO::ATTR_STRINGIFY_FETCHES => false, PDO::ATTR_EMULATE_PREPARES => false,

在database中设置的params参数中的连接配置将会和内置的设置参数合并,如果需要使用长连接,并且返回数据库的小写列名,可以采用下面的方式定义:

复制代码
1
2
3
4
5
6
'params' => [ PDO::ATTR_PERSISTENT => true, PDO::ATTR_CASE => PDO::CASE_LOWER, ],

你可以在params里面配置任何PDO支持的连接参数。



按官方的格式要求写,根本不行,心中万头草泥马奔过,tinkphp团队写技术文档能不能认真点。


最后

以上就是时尚小鸽子最近收集整理的关于ThinkPHP SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Altern的全部内容,更多相关ThinkPHP内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部