Здравствуйте! Периодически в логах вываливается
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Мб.
Куда копать? Или хостера дергать?
Буду благодарен за любую помощь.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задание: Реализовать в С++ функцию void BigRorCount(byte* M1, short len, short count), где M1 – сверхбольшое целое положительное число (байтовый массив длиною len), count – количество...
Подскажите, пожалуйста как работать с большими числами, такие как, 10^90(можно и меньше) uint64_t не помогает
Для чего нужен был вспомогательный класс auto_ptr_refНужны примеры простейшей реализации и использования