Maison  >  Article  >  base de données  >  Comment définir un délai d'expiration de connexion pour PDO en PHP ?

Comment définir un délai d'expiration de connexion pour PDO en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 12:59:021010parcourir

How to Set a Connection Timeout for PDO in PHP?

Délai d'attente de connexion PDO : une solution détaillée

Introduction :
La connexion à une base de données peut parfois prendre un certain temps une durée excessive en raison de divers facteurs tels que des problèmes de réseau ou la disponibilité du serveur. Cela peut être particulièrement frustrant lorsque vous travaillez avec des systèmes de production.

Paramètre de l'attribut PDO :
L'OP a tenté de définir un délai d'attente en utilisant PDO::setAttribute() avec l'attribut PDO::ATTR_TIMEOUT. , mais cela n'a pas résolu le problème. En effet, le paramètre de délai d'attente s'applique à l'exécution des instructions PDO, et non à l'établissement de la connexion.

Solution optimale :
La solution recommandée pour définir un délai d'expiration de connexion est de fournir la valeur du délai d'attente. comme paramètre de configuration lors de l'initialisation de l'objet PDO. Ceci peut être réalisé en spécifiant PDO::ATTR_TIMEOUT dans le tableau d'options du constructeur.

Exemple de code :
Le code suivant montre comment définir un délai d'expiration de connexion de 5 secondes pour un MySQL connexion à la base de données :

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

En définissant PDO::ATTR_ERRMODE sur PDO::ERRMODE_EXCEPTION, toute erreur ou délai d'attente de la base de données déclenchera une PDOException, qui peut être interceptée et traitée en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn