Heim >Datenbank >MySQL-Tutorial >Wie stelle ich ein Verbindungs-Timeout für PDO ein?

Wie stelle ich ein Verbindungs-Timeout für PDO ein?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 19:55:03526Durchsuche

How to Set a Connect Timeout for PDO?

Einstellen eines Verbindungs-Timeouts mit PDO

Wenn Sie PDO zum Abrufen von Daten von einem MySQL-Server verwenden, kann es zu langen Verzögerungen kommen, wenn der Server nicht aktiv ist unzugänglich. Standardmäßig benötigt PDO bei MySQL mehr als 2 Minuten, um eine Ausnahme auszulösen, und 30 Sekunden bei PostgreSQL, was übermäßig lang sein kann.

Um dieses Problem zu beheben, können Sie eine Zeitüberschreitung für die Verbindung zur Datenbank festlegen Verwenden Sie die folgende Syntax:

$DBH = new PDO(
    "mysql:host=$host;dbname=$dbname", 
    $username, 
    $password,
    array(
        PDO::ATTR_TIMEOUT => 5, // in seconds
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    )
);

Durch Festlegen des Attributs PDO::ATTR_TIMEOUT können Sie die maximale Zeit in Sekunden angeben, die PDO warten soll, bevor eine Verbindung hergestellt wird. Im obigen Beispiel wird der Verbindungsversuch nach 5 Sekunden abgebrochen.

Es ist wichtig zu beachten, dass das Festlegen eines Verbindungszeitlimits keinen sofortigen Failover garantiert. Wenn der Server vor Ablauf des Timeouts wieder online ist, stellt PDO die Verbindung erfolgreich her. Es bietet jedoch einen reaktionsschnelleren Ansatz für die Behandlung von Verbindungsproblemen und reduziert so die Zeit, die Ihre Anwendung damit verbringt, auf einen nicht verfügbaren Server zu warten.

Das obige ist der detaillierte Inhalt vonWie stelle ich ein Verbindungs-Timeout für PDO ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn