Ошибка php mysqli_query: Error while sending QUERY packet

214
18 декабря 2017, 15:00

Здравствуйте! Периодически в логах вываливается

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Мб. Куда копать? Или хостера дергать? Буду благодарен за любую помощь.

READ ALSO
Сдвиг числа в ассемблере командой RCR

Сдвиг числа в ассемблере командой RCR

Задание: Реализовать в С++ функцию void BigRorCount(byte* M1, short len, short count), где M1 – сверхбольшое целое положительное число (байтовый массив длиною len), count – количество...

251
Работа большими числами

Работа большими числами

Подскажите, пожалуйста как работать с большими числами, такие как, 10^90(можно и меньше) uint64_t не помогает

250
вспомогательный класс auto_ptr_ref

вспомогательный класс auto_ptr_ref

Для чего нужен был вспомогательный класс auto_ptr_refНужны примеры простейшей реализации и использования

172