Position actuelle: Accueil> Derniers articles> Comment implémenter des connexions persistantes à une base de données via la fonction MySQL_Connect? Analyse des étapes détaillée

Comment implémenter des connexions persistantes à une base de données via la fonction MySQL_Connect? Analyse des étapes détaillée

gitbox 2025-09-11

Dans PHP, la connexion à la base de données MySQL est une tâche courante lors du développement d'applications Web. Nous pouvons établir des connexions de base de données de diverses manières, et c'est une façon classique d'implémenter des connexions persistantes à l'aide de la fonction mysql_connect () . Cet article analysera en détail comment implémenter des connexions persistantes des bases de données via la fonction mysql_connect () , ainsi que son principe de travail et son application pratique.

Qu'est-ce qu'une connexion persistante?

Une connexion persistante signifie qu'une fois qu'une connexion est établie, elle ne sera pas fermée après l'exécution du script, mais restera connectée et réutilisée en attendant la prochaine demande de script. Cette méthode peut réduire les frais généraux des connexions fréquemment établies et clôturant et convient particulièrement aux scénarios d'application avec plus de demandes. En revanche, une connexion régulière consiste à établir une nouvelle connexion de base de données chaque fois que le script est exécuté et de le fermer après l'exécution.

Utilisez MySQL_Connect pour obtenir des connexions persistantes

Dans PHP, la fonction mysql_connect () peut être utilisée pour établir une connexion persistante. La syntaxe de base est la suivante:

 <span><span><span class="hljs-title function_ invoke__">mysql_connect</span></span><span>(</span><span><span class="hljs-string">'hostname'</span></span><span>, </span><span><span class="hljs-string">'username'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>
  • «Nom d'hôte» : l'adresse hôte du serveur de base de données, généralement localhost ou adresse IP.

  • «Nom d'utilisateur» : le nom d'utilisateur utilisé pour se connecter à la base de données.

  • «Mot de passe» : le mot de passe correspondant au nom d'utilisateur.

  • Le quatrième paramètre True signifie établir une connexion persistante.

La différence entre la connexion persistante et la connexion normale

  1. Mécanisme de clôture de la connexion :

    • Connexion normale: chaque fois que le script est exécuté, la connexion sera fermée.

    • Connexion persistante: même si le script est exécuté, la connexion reste active pour que les demandes suivantes soient réutilisées.

  2. Différences de performance :

    • Les connexions persistantes réduisent les frais généraux de l'établissement et de la destruction des connexions de base de données, en particulier pour les applications Web de longue durée ou les applications très concurrentes, avec de meilleures performances.

    • Les connexions normales nécessitent une nouvelle connexion à créer chaque fois qu'une connexion normale est demandée, ce qui peut conduire à des goulots d'étranglement de performances dans des environnements de concurrence élevés.

  3. Les plus grands avantages des connexions persistantes :

    • Efficacité: Réduisez l'établissement en double des connexions de la base de données.

    • Économiser des ressources: le pool de connexions réutilise les connexions établies pendant une certaine période de temps.

Étapes pour implémenter des connexions persistantes

Étape 1: Assurez-vous que la configuration MySQL prend en charge les connexions persistantes

Tout d'abord, nous devons nous assurer que la fonction de connexion persistante est activée dans le fichier de configuration MySQL. Les configurations suivantes peuvent être vérifiées dans le fichier de configuration de MySQL ( my.cnf ou my.ini ):

 <span><span><span class="hljs-section">[mysqld]</span></span><span>
skip-name-resolve
</span><span><span class="hljs-attr">wait_timeout</span></span><span> = </span><span><span class="hljs-number">28800</span></span><span>
</span><span><span class="hljs-attr">interactive_timeout</span></span><span> = </span><span><span class="hljs-number">28800</span></span><span>
</span></span>
  • Skip-Name-Resolve : Désactivez la résolution inverse DNS pour éviter les requêtes DNS à chaque fois que vous vous connectez.

  • wait_timeout et interactive_timeout : définissez l'heure du délai d'expiration de la connexion pour s'assurer que la connexion ne se fermera pas trop tôt.

Étape 2: Utilisez la fonction mysql_connect () pour établir une connexion persistante

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// utilisermysql_connectÉtablir une connexion persistante</span></span><span>
</span><span><span class="hljs-variable">$link</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_connect</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'root'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$link</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'Could not connect: '</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysql_error</span></span><span>());
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'Connected successfully!'</span></span><span>;
</span><span><span class="hljs-comment">// Autres opérations de base de données...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans ce code, le quatrième paramètre de mysql_connect () est défini sur true , indiquant qu'une connexion persistante est requise. Une fois la connexion réussie, l'opération de base de données peut continuer à être exécutée.

Étape 3: Effectuez les opérations de base de données

Une fois qu'une connexion persistante est établie, les opérations régulières de la base de données peuvent être effectuées. Par exemple, sélectionnez une base de données et exécutez une requête:

 <span><span><span class="hljs-title function_ invoke__">mysql_select_db</span></span><span>(</span><span><span class="hljs-string">'my_database'</span></span><span>, </span><span><span class="hljs-variable">$link</span></span><span>);

</span><span><span class="hljs-comment">// mettre en œuvreSQLRequête</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_query</span></span><span>(</span><span><span class="hljs-string">'SELECT * FROM users'</span></span><span>, </span><span><span class="hljs-variable">$link</span></span><span>);

</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_fetch_assoc</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>] . </span><span><span class="hljs-string">'&lt;br&gt;'</span></span><span>;
}
</span></span>

Étape 4: Fermez la connexion (facultative)

Pour les connexions persistantes, il n'est généralement pas nécessaire de fermer manuellement la connexion, car elle restera active et réutilisée. Cependant, s'il existe des besoins spéciaux, vous pouvez également appeler mysql_close () pour la fermeture explicite:

 <span><span><span class="hljs-title function_ invoke__">mysql_close</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>);
</span></span>

Notes sur l'utilisation de connexions persistantes

  1. Limites de mise en commun de connexion :

    • Si vous utilisez des connexions persistantes, le pool de connexions de la base de données MySQL peut avoir une limite de connexion maximale. Lorsqu'il y a trop de connexions de base de données, le pool de connexions peut être épuisé.

  2. Problèmes de statut de session :

    • Une connexion persistante enregistre l'état de session de la dernière connexion, comme une variable qui a été définie. Des conflits peuvent se produire si plusieurs scripts dépendent de différents paramètres de session.

  3. Occupation des ressources :

    • Bien que les connexions persistantes puissent améliorer les performances, elles doivent également être utilisées avec prudence, comme si un grand nombre de connexions ne sont pas fermées, cela peut entraîner la diffusion des ressources du serveur MySQL.

  4. Problèmes de sécurité :

    • Lorsque vous utilisez des connexions persistantes, la connexion de la base de données a un long cycle de vie. Assurez-vous que les informations de connexion (telles que le nom d'utilisateur et le mot de passe) ne sont pas divulguées pour éviter que les utilisateurs malveillants de vous abuser de connexions persistantes.

Résumer

La connexion persistante implémentée via la fonction MySQL_Connect () peut réduire efficacement les frais généraux de l'établissement et de la destruction fréquentes des connexions de bases de données, et convient particulièrement aux scénarios d'application avec un accès élevé et fréquent aux bases de données. Cependant, lorsque vous utilisez des connexions persistantes, vous devez également faire attention à la gestion des ressources, aux conflits de session et à d'autres problèmes pour vous assurer que le nombre maximum de connexions dans le pool de connexions de base de données peut répondre aux besoins réels. En général, la configuration rationnelle et l'utilisation des connexions persistantes sont un moyen efficace d'améliorer les performances des applications de base de données PHP.