PHP est un langage de script côté serveur largement utilisé qui peut interagir et communiquer avec diverses bases de données. Dans le développement réel, nous rencontrons souvent des situations où nous devons nous connecter à la base de données. De nombreux facteurs sont impliqués lorsque PHP se connecte à la base de données, l'un des facteurs importants est le réglage du temps de connexion. Cet article présentera brièvement comment définir l'heure à laquelle PHP se connecte à la base de données.
1. Paramétrage du temps de connexion à la base de données PHP
Le temps de connexion à la base de données en PHP est généralement contrôlé par deux variables : le délai d'expiration de la connexion et le délai d'expiration de la requête. Le délai d'attente de connexion fait référence au temps d'attente maximum pour la connexion à la base de données. Si la base de données ne peut pas être connectée dans ce délai, la demande de connexion échouera ; le délai d'attente de la requête fait référence au temps d'attente maximum pour l'exécution de la requête. la demande de connexion échouera. Si la requête ne peut pas être complétée, l’exécution sera abandonnée et un message d’erreur sera renvoyé.
Après PHP 5.3, vous pouvez définir le délai d'expiration de la connexion et le délai d'expiration des requêtes en ajoutant le mot-clé timeout dans les paramètres. Un exemple est le suivant :
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Parmi eux, $connect_timeout et $query_timeout représentent respectivement le délai d'expiration de la connexion et le délai d'expiration de la requête, en secondes.
De plus, dans PDO, vous pouvez également contrôler le temps de connexion en définissant des propriétés. L'exemple est le suivant :
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_TIMEOUT => $timeout));
Parmi eux, $timeout représente le délai d'attente en secondes.
2. Comment définir le délai d'expiration de la connexion et le délai d'expiration des requêtes
En PHP, le délai d'expiration de la connexion peut être défini dans les paramètres. L'exemple de code est le suivant :
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Parmi eux, $connect_timeout représente le délai d'expiration de la connexion en secondes ; $query_timeout représente le délai d'expiration de la requête en secondes. Nous pouvons définir les valeurs de ces deux paramètres selon nos besoins.
Le paramètre du délai d'attente des requêtes en PHP implique généralement deux paramètres de MySQL : wait_timeout et interactive_timeout. wait_timeout fait référence au temps pendant lequel le client attend que le serveur ferme la connexion dans l'état inactif ; interactive_timeout fait référence au temps pendant lequel le client attend que le serveur ferme la connexion dans l'état inactif ; cela fonctionnera si et seulement si le client l'utilise. l'option "INTERACTIVE". Par défaut, la valeur de ces deux paramètres est de 28 800 secondes, soit 8 heures.
En PHP, nous pouvons contrôler le temps d'exécution de la requête en spécifiant le timeout dans l'instruction SQL. L'exemple de code est le suivant :
$stmt = $conn->prepare("SELECT * FROM users WHERE id=?"); $stmt->bind_param("i", $id); $stmt->execute(); $stmt->store_result(); $stmt->sqlstate(); $stmt->get_warnings(); $stmt->errno(); $stmt->error(); $stmt->fetch();
Lors de l'exécution de l'instruction de requête, nous pouvons ajouter le code suivant :
$stmt->query("SET SESSION wait_timeout=120");
De cette façon, le délai d'attente peut être défini ici, ici nous le définissons à 120 secondes. Puisque wait_timeout est un paramètre côté serveur, le réglage de ce délai d'attente est approximatif et pas assez détaillé.
3. Résumé
Lorsque PHP se connecte à la base de données, vous devez faire attention au réglage du temps de connexion, y compris le délai d'expiration de la connexion et le délai d'attente des requêtes. Nous pouvons y parvenir en spécifiant le délai d'attente dans les paramètres ; de plus, nous pouvons également spécifier le délai d'attente dans l'instruction SQL pour limiter le temps d'exécution de la requête. Pour un contrôle plus détaillé des délais d'attente, une compréhension plus approfondie des paramètres côté serveur MySQL est requise. Dans le développement réel, nous devons définir le délai d'attente de manière raisonnable en fonction de la situation spécifique pour garantir la stabilité et la fiabilité du système.
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!