sql >> Databasteknik >  >> RDS >> Mysql

PHP:s PDO ignorerar alternativet ATTR_TIMEOUT för MySQL när servern inte kan nås

Sätt bara

ini_set("default_socket_timeout", 2);

före din PDO()-anslutningssträng.

(Testat på Windows, borde också vara bra på Linux.)

Varför?

Jagar detta genom manualen:

Mysqlnd-drivrutinen använder sockets för den underliggande anslutningen, och för att ställa in timeouts måste du använda socket (stream) timeout-funktioner. (Ref:http://php.net/manual/en/mysqlnd.notes. php )

Om du vill ha mer kontroll kan du kanske styra mer specifikt själva sockeln:jag har inte testat detta eftersom det bara är unix. För att ställa in socket mysqlnd använder kan du specificera socket med ini-inställningar (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )

Se http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket om den inställningen

Du kanske sedan kan ställa in timeout med http://php .net/manual/en/function.stream-set-timeout.php

Men förmodligen lättare att ställa in standard och sedan återställa när du är klar...



  1. Länk till Salesforce Data i Microsoft Access

  2. Hur man ställer in ett standardvärde för en befintlig kolumn

  3. Hibernate:själv gå med förvirring?

  4. Uppdatera flera kolumner i SQL