Вие задавате wait_timeout
до 1 тогава спиш 3, какво ще стане? MySql ще затвори връзката след една секунда и ще получите грешка „Mysql Server е изчезнал“ със следващото изявление, защото спите 3.
http://dev.mysql.com /doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout
редактиране
Въпросът е дубликат на MySQL грешка 2006:mysql сървърът е изчезнал
редактиране 2
Причини за тази грешка:
- ниско изчакване_време за изчакване – решение:пинг, повторно свързване или също го увеличете
- големи пакети - решение:настройте
max_allowed_packet
в my.cfg
PDO повторно свързване - симулирайте ping в PDO Как да пингувам на MySQL db и да се свържа отново чрез PDO
редактиране 3 въпросът е актуализиран
Единственият начин (afaik) да се отървете от тези предупреждения е да зададете очаквано (напр. E_ERROR) отчитане_за_грешки ниво. Можете да обвиете pdo извиквания, например, за да зададете E_ERROR преди и да нулирате по подразбиране след изпълнение.
PDO регистрира предупреждения/грешки за регистрационни цели (sic!) за по-нататъшен анализ. Атрибутът, който задавате (от setAttribute или конструктор), променя само обработката на грешките/поведението на pdo - хвърляне или не:). Тези две неща са разделени.