Maison > développement back-end > Problème PHP > Comment définir l'heure à laquelle PHP se connecte à la base de données

Comment définir l'heure à laquelle PHP se connecte à la base de données

PHPz
Libérer: 2023-04-06 13:16:01
original
1396 Les gens l'ont consulté

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));
Copier après la connexion
Copier après la connexion

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));
Copier après la connexion

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

  1. Définition du délai d'expiration de la connexion

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));
Copier après la connexion
Copier après la connexion

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.

  1. Paramètre du délai d'attente des requêtes

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();
Copier après la connexion

Lors de l'exécution de l'instruction de requête, nous pouvons ajouter le code suivant :

$stmt->query("SET SESSION wait_timeout=120");
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal