MySQL: 发送查询数据包时出错。 PID=2
MySQL: Error while sending QUERY packet. PID=2
我尝试执行一个非常简单的查询来删除一行。 "max_allowed_packet" 等于“1073741824”,这就是为什么我很困惑为什么我得到
Error while sending QUERY packet. PID=2
我 select 来自 table 的 25 行删除行后通过短信和睡眠(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)
但有时(只是有时不是每次)我都会收到该错误并且行不会被删除,因此短信会多次发送给同一用户,因为它仍在 table 中。有解决这个问题的想法吗?
提前致谢。
当您使用像
这样的模式时
prepare mysql query a
execute mysql query a
for each row in result set a
prepare mysql query b
execute mysql quer b
您必须为 mysql 查询 b 使用单独的数据库连接。为什么?只要您从其结果集中读取行,查询 a 仍可以使用其连接。
我尝试执行一个非常简单的查询来删除一行。 "max_allowed_packet" 等于“1073741824”,这就是为什么我很困惑为什么我得到
Error while sending QUERY packet. PID=2
我 select 来自 table 的 25 行删除行后通过短信和睡眠(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)
但有时(只是有时不是每次)我都会收到该错误并且行不会被删除,因此短信会多次发送给同一用户,因为它仍在 table 中。有解决这个问题的想法吗?
提前致谢。
当您使用像
这样的模式时prepare mysql query a
execute mysql query a
for each row in result set a
prepare mysql query b
execute mysql quer b
您必须为 mysql 查询 b 使用单独的数据库连接。为什么?只要您从其结果集中读取行,查询 a 仍可以使用其连接。