Mysql
 sql >> Database >  >> RDS >> Mysql

Eccezione PHP PDO + avviso su MySQL è andato via?

Hai impostato wait_timeout a 1 poi dormi 3, cosa accadrà? MySql chiuderà la connessione dopo un secondo e riceverai l'errore "Mysql Server è andato via" con l'istruzione successiva perché dormi per 3.

http://dev.mysql.com /doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout

modifica

La domanda è duplicata di Errore MySQL 2006:mysql il server è andato via

modifica 2

Cause di questo errore:

  • low wait_timeout - soluzione:esegui il ping, ricollegalo o aumentalo anche tu
  • pacchetti grandi - soluzione:sintonizzare max_allowed_packet nel mio.cfg

Riconnessione PDO:simula il ping in PDO Come posso eseguire il ping del db MySQL e riconnettermi usando PDO

modifica 3 domanda aggiornata

L'unico modo (afaik) per eliminare questi avvisi è impostare l'attesa (ad es. E_ERROR) segnalazione_errore livello. È possibile eseguire il wrapping delle chiamate pdo, ad esempio, per impostare E_ERROR prima e ripristinare le impostazioni predefinite dopo l'esecuzione.

PDO registra avvisi/errori a scopo di registrazione (sic!) Per ulteriori analisi. L'attributo impostato (tramite setAttribute o costruttore) cambia solo la gestione/comportamento degli errori di pdo - throw or not:). Queste due cose sono separate.