Estableces wait_timeout
a 1 luego duermes 3, que pasara? MySql cerrará la conexión después de un segundo y obtendrá el error "Mysql Server se ha ido" con la siguiente declaración porque duerme por 3.
http://dev.mysql.com /doc/refman/5.1/en/variables-del-sistema-del-servidor.html#sysvar_wait_timeout
editar
La pregunta es un duplicado de Error de MySQL 2006:mysql el servidor se ha ido
editar 2
Causas de este error:
- low wait_timeout - solución:hacer ping, volver a conectar o aumentarlo también
- paquetes grandes - solución:ajustar
max_allowed_packet
en mi.cfg
Reconexión de PDO:simule ping en PDO -pdo">¿Cómo hago ping a la base de datos MySQL y me vuelvo a conectar usando PDO
editar 3 pregunta actualizada
La única forma (afaik) de deshacerse de estas advertencias es configurar lo esperado (por ejemplo, E_ERROR) informe_de_errores nivel. Podría envolver llamadas pdo, por ejemplo, para configurar E_ERROR antes y restablecer los valores predeterminados después de la ejecución.
PDO registra advertencias/errores con fines de registro (¡sic!) para análisis adicionales. El atributo que establece (por setAttribute o constructor) solo cambia el manejo/comportamiento de errores de pdo - lanzar o no :). Estas dos cosas están separadas.