Vous définissez wait_timeout
à 1 puis tu dors 3, que va-t-il se passer ? MySql fermera la connexion au bout d'une seconde et vous obtiendrez l'erreur "Mysql Server is gone away" avec la prochaine déclaration "cause you sleep for 3.
http://dev.mysql.com /doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout
modifier
La question est un doublon de Erreur MySQL 2006 :mysql le serveur a disparu
modifier 2
Causes de cette erreur :
- faible délai d'attente - solution :ping, reconnectez-vous ou augmentez-le également
- paquets volumineux - solution :régler
max_allowed_packet
dans mon.cfg
Reconnexion PDO - simuler le ping dans PDO Comment envoyer un ping à la base de données MySQL et me reconnecter à l'aide de PDO
modifier 3 question mise à jour
Le seul moyen (autant que je sache) de se débarrasser de ces avertissements est de définir attendu (par exemple E_ERROR) rapport_erreur niveau. Vous pouvez par exemple encapsuler des appels pdo pour définir E_ERROR avant et réinitialiser la valeur par défaut après l'exécution.
PDO enregistre les avertissements/erreurs à des fins de journalisation (sic !) pour des analyses plus poussées. L'attribut que vous définissez (par setAttribute ou constructeur) ne modifie que la gestion des erreurs/le comportement de pdo - lancer ou non :). Ces deux choses sont séparées.