sql >> Database >  >> RDS >> Mysql

PHP PDO-uitzondering + waarschuwing op MySQL is verdwenen?

U stelt wait_timeout in tot 1 dan slaap je 3, wat gebeurt er? MySql sluit de verbinding na één seconde en u krijgt de foutmelding "Mysql Server has gone away" met de volgende instructie omdat u 3 slaapt.

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

bewerken

Vraag is duplicaat van MySQL-fout 2006:mysql server is weggegaan

bewerk 2

Oorzaken van deze fout:

  • low wait_timeout - oplossing:ping, maak opnieuw verbinding of verhoog het ook
  • grote pakketten - oplossing:tune max_allowed_packet in mijn.cfg

PDO opnieuw verbinden - ping simuleren in PDO Hoe ping ik de MySQL-database en maak opnieuw verbinding met PDO

bewerk 3 vraag bijgewerkt

De enige manier (afaik) om van deze waarschuwingen af ​​te komen, is door de verwachte (bijv. E_ERROR) error_reporting niveau. Je zou pdo-oproepen kunnen inpakken om bijvoorbeeld E_ERROR eerder in te stellen en na uitvoering terug te zetten op de standaardwaarde.

PDO logt waarschuwingen/fouten voor logdoeleinden (sic!) voor verdere analyse. Het attribuut dat u instelt (door setAttribute of constructor) verandert alleen de foutafhandeling/het gedrag van pdo - gooien of niet:). Deze twee dingen zijn gescheiden.



  1. Verleen privileges voor een bepaalde database in PostgreSQL

  2. Oracle 12c Belangrijkste nieuwe functies

  3. Hoe voorkom ik dat een MySQL-decimaalveld wordt afgerond?

  4. Is er een manier om deze twee zoekopdrachten samen te voegen zonder subquery?