Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'exception PHP PDO + l'avertissement sur MySQL a-t-il disparu ?

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.