gpt4 book ai didi

php - PDO beginTransaction 失败

转载 作者:IT老高 更新时间:2023-10-29 00:01:31 25 4
gpt4 key购买 nike

我的 php error_log 中出现以下错误

PHP Warning: Error while sending QUERY packet. PID=29770 in /home/test/test.php on line 87

在我的 php 脚本的第 87 行代码 id

$DBH->beginTransaction();

然后当我提交时,我得到以下错误

exception 'PDOException' with message 'There is no active transaction' in /home/test/test.php:98

我已经设置了 max_allowed_pa​​cket=512M 并且我的表是 InnoDB

这里有什么问题?

编辑:我的代码在循环中运行,将总共 100,000 多条记录插入到表中,我在每个事务中执行 5000 多次插入。这是我的代码结构

beginTransaction
Multiple insert query for 5000 records
commit

循环运行以插入 100,000 多条记录。有时脚本运行成功,有时却失败。

我在 6-7 个循环中间收到此错误。(插入 30k 到 40k 条记录后)

最佳答案

我做了一些网络搜索短语“发送查询数据包时出错”。它能够打开此链接:http://www.willhallonline.co.uk/blog/max-packet-size-php-error

该帖子的作者也有类似的问题,也尝试过“增加 max_allowed_pa​​cket 大小”并增加超时,但没有奏效。但似乎奏效的方法是将工作分成更小的 block 。

Our new smaller csv files updated successfully inside MySQL, though we're still none the wiser as to what was causing the original error.

我不清楚他们是否在一个 PHP 进程的生命周期内处理了很多 block ,或者他们是否多次运行代码,但这个想法似乎很合理;也许你可以试一试。

关于php - PDO beginTransaction 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858576/

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