Kategorien
PHP

PHP PDO Connection Timeout für Datenbank setzen und bestimmen

Normalerweise soll man das Datenbank Connection Timeout in PHP auslesen können mittels:

$pdo = new PDO('mysql:host=localhost;port=80;dbname=xxx', 'xxx', 'xxxx');
$pdo->getAttribute(PDO::ATTR_TIMEOUT);

Allerdings gibt das bei meiner alten PDO Version die Fehlermeldung:

SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute

Also habe ich ein Testscript geschrieben, mit dem man das Timeout provozieren kann (das Messen der Zeit ist nicht enthalten, wäre nett, wenn jemand das posten könnte):

$pdo = new PDO('mysql:host=localhost;port=80;dbname=xxx', 'xxx', 'xxxx');

Damit wird das Timeout ausgelöst.

Um das Timeout zu verlängern, kann man den Parameter PDO::ATTR_TIMEOUT setzen:

$pdo = new PDO('mysql:host=localhost;port=80;dbname=xxx', 'xxx', 'xxxx', array(
   PDO::ATTR_TIMEOUT => 5
));