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...