Здравствуйте! Периодически в логах вываливается
Warning: Error while sending QUERY packet. PID=36408
в скрипте на mysqli_query:
foreach ($aData as $p_id=>$p_ip) {
$p_req = "SELECT ip FROM base WHERE ip='".$p_ip."'";
$p_res = mysqli_query($db,$p_req);
if ($p_res) {
if (mysqli_num_rows($p_res)==0) $p_row[] = $aData[$p_id];
mysqli_free_result($p_res);
}
}
Обратился к хостеру. Написали: добавьте следующую строку, возможно обернув в функцию mysql_query:
SET SESSION max_allowed_packet = 256M
Добавил
mysqli_query($db, ‘SET @@global.max_allowed_packet = ’ . 256*1024*1024 );
Не помогло.
Погуглил и добавил еще
mysqli_query($db, ‘SET @@global.wait_timeout = ’ . 60 );
Все равно Warning вылазит. Скрипт, то маленький. Цикл не более 2000 раз за запуск. Памяти должно хватать.
Читал, что для max_allowed_packet нужно значение длины запроса умноженное на 1024. Длина моего запроса не превышает 50 байт. Запрос за один проход выполняется за 0,0004 сек. База занимает 1,75Мб.
Куда копать? Или хостера дергать?
Буду благодарен за любую помощь.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники