mysql:发送查询包时出错pid=2

31moq8wy  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我尝试执行一个非常简单的查询来删除一行。“max\u allowed\u packet”等于“1073741824”,这就是为什么我很困惑为什么我会

Error while sending QUERY packet. PID=2

我从一个表中选择25行,在删除行后通过sms和sleep(1)发送数据。
查询:

$stmt = $db->prepare("select * from sms limit 25");
$stmt->execute();

我在这里循环行,通过短信发送行数据,然后删除它

$q = $db->prepare("delete from sms where id = '$r[id]'");
$q->execute();
sleep(1)

但有时(只是有时不是每次)我得到那个错误,行没有被删除,所以短信发送这么多次给同一个用户,因为它仍然在表中。有什么办法解决这个问题吗?
提前谢谢。

6kkfgxo0

6kkfgxo01#

当你使用像

prepare mysql query a
execute mysql query a
for each row in result set a
    prepare mysql query b
    execute mysql quer b

您必须为mysql query b使用单独的db连接。为什么?只要从查询的结果集中读取行,查询仍然可以使用其连接。

相关问题