Geben Sie einfach
einini_set("default_socket_timeout", 2);
vor Ihrer PDO()-Verbindungszeichenfolge.
(Unter Windows getestet, sollte auch unter Linux funktionieren.)
Warum?
Dies durch das Handbuch jagen:
Der mysqlnd-Treiber verwendet Sockets für die zugrunde liegende Verbindung, und um Timeouts festzulegen, müssen Sie die Socket- (Stream-) Timeout-Funktionen verwenden. (Siehe:http://php.net/manual/en/mysqlnd.notes. php )
Wenn Sie mehr Kontrolle wünschen, können Sie möglicherweise den eigentlichen Socket genauer steuern:Ich habe dies nicht getestet, da es nur Unix ist. Um den von mysqlnd verwendeten Socket festzulegen, können Sie den Socket mithilfe von INI-Einstellungen angeben (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )
Siehe http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket über diese Einstellung
Möglicherweise können Sie dann das Timeout mit http://php einstellen .net/manual/en/function.stream-set-timeout.php
Aber wahrscheinlich ist es einfacher, den Standardwert festzulegen und dann zurückzusetzen, wenn Sie fertig sind ...