Я пытаюсь выполнить очень простой запрос, чтобы удалить одну строку. "max_allowed_packet" равен "1073741824", поэтому я смущен, почему я получаю
Error while sending QUERY packet. PID=2
Я выбираю только 25 строк из таблицы для отправки своих данных через sms и sleep (1) после удаления строки.
Запрос:
$stmt = $db->prepare("select * from sms limit 25");
$stmt->execute();
Я прохожу через строки здесь и отправляю данные строки через sms, а затем удаляю их
$q = $db->prepare("delete from sms where id = '$r[id]'");
$q->execute();
sleep(1)
Но иногда (иногда иногда не каждый раз) я получаю эту ошибку, и строка не удаляется, поэтому сообщение sms отправляется так много раз одному пользователю, поскольку он все еще находится в таблице. Любые идеи для решения этой проблемы?
Заранее спасибо.
Когда вы используете шаблон, подобный
prepare mysql query a
execute mysql query a
for each row in result set a
prepare mysql query b
execute mysql quer b
вы должны использовать отдельное соединение db для запроса mysql b. Зачем? query a все еще может использовать свое соединение, пока вы читаете строки из своего набора результатов.
select * from TABLE limit 25
даст те же результаты без использования ORDER BY ..