Les développeurs éprouvent souvent des erreurs de connexion ou des problèmes de performances lors de l'interaction avec MySQL à l'aide de PHP. MySQLI :: $ ERRNO et MySQLI_OPTIONS peuvent nous aider à mieux dépanner et ajuster les propriétés de connexion MySQL, résolvant ainsi les erreurs de connexion communes ou les problèmes d'instabilité. Cet article expliquera en détail comment utiliser ces outils pour déboguer une connexion MySQL.
MySQL fournit une multitude d'options de connexion et de codes d'erreur pour aider les développeurs à diagnostiquer les problèmes lors de l'interaction avec MySQL. L'extension MySQLI dans PHP fournit des outils tels que MySQLI :: $ Errno et MySQLI_OPTIONS , ce qui nous permet de contrôler plus granulé des connexions de base de données et de capturer et ajuster les erreurs.
mysqli :: $ errno est un entier représentant le code d'erreur lorsque l'opération MySQL précédente a échoué. Cette propriété peut renvoyer le code d'erreur correspondant lorsqu'une connexion de base de données échoue ou qu'une erreur se produit lors de l'exécution d'une requête SQL. En analysant ce code d'erreur, nous pouvons nous aider à comprendre la cause de l'erreur.
Les codes d'erreur MySQL courants comprennent:
2002 : Impossible de se connecter au serveur MySQL
1045 : Erreur d'accès refus, nom d'utilisateur ou mot de passe
1049 : la base de données spécifiée n'existe pas
La fonction mysqli_options nous permet de définir différentes options de connexion lors de la création d'une connexion MySQL. Grâce à ces options, nous pouvons ajuster le comportement des connexions MySQL, tels que le réglage des délais de connexion, l'ajustement des jeux de caractères, etc. Cette fonction peut être appliquée via la méthode mysqli :: real_connect () .
Les options communes incluent:
Mysqli_opt_connect_timeout : définit l'heure de délai de connexion.
Mysqli_opt_local_infile : activer ou désactiver la commande locale de données de chargement .
Mysqli_opt_compress : activer ou désactiver la compression des données.
Avec mysqli :: $ errno , nous pouvons déterminer si elle réussit après avoir établi la connexion. Si la connexion échoue, vous pouvez obtenir des informations d'erreur détaillées via MySqli :: $ Erreur .
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "Échec de la connexion: " . $mysqli->connect_error;
exit();
}
echo "Connexion avec succès!";
?>
Dans cet exemple, si $ mysqli-> connect_errno renvoie une valeur non nulle, cela signifie que la connexion a échoué. Nous pouvons encore dépanner le code d'erreur.
Parfois, une connexion MySQL peut échouer en raison d'un paramètre de délai d'expiration par défaut ou d'un décalage de jeu de caractères. Ces paramètres peuvent être ajustés à l'aide de MySQLI_OPTIONS .
Par exemple, si nous soupçonnons que le délai d'attente de la connexion, nous pouvons ajuster MySQLI_OPT_CONNECT_TIMEOUT :
<?php
$mysqli = new mysqli();
$timeout = 10; // Définissez le délai de connexion sur10Deuxième
// Définir le délai de connexion
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, $timeout);
$mysqli->real_connect("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "Échec de la connexion: " . $mysqli->connect_error;
exit();
}
echo "Connexion avec succès!";
?>
Si une erreur de délai d'expiration se produit lors de la connexion, nous pouvons ajuster MySQLI_OPT_CONNECT_TIMEOUT pour augmenter la tolérance et éviter la défaillance de la connexion en raison de la latence du réseau ou de la réponse lente du serveur MySQL.
Après avoir obtenu le code d'erreur spécifique via mysqli :: $ errno , nous pouvons prendre différentes mesures en fonction du type d'erreur. Par exemple:
<?php
$mysqli = new mysqli("m66.net", "username", "wrong_password", "database");
if ($mysqli->connect_errno) {
switch ($mysqli->connect_errno) {
case 1045:
echo "Nom d'utilisateur ou mot de passe incorrect,Veuillez vérifier le bon entré";
break;
case 2002:
echo "Impossible de se connecter à MySQL serveur,请检查serveur地址和端口";
break;
default:
echo "Échec de la connexion,Code d'erreur: " . $mysqli->connect_errno;
}
exit();
}
?>
Cette méthode peut nous aider à localiser avec précision les erreurs et à effectuer des ajustements correspondants.
Cette erreur est généralement causée par des serveurs de base de données inaccessibles ou des erreurs de configuration de port. Les solutions comprennent:
Vérifiez que le serveur MySQL est en cours d'exécution.
Assurez-vous qu'il n'y a aucun problème avec la connexion réseau.
Assurez-vous que la résolution de nom de domaine m66.net est correcte et qu'il n'y a pas de pare-feu pour bloquer l'accès.
Cette erreur indique que les informations d'identification de la connexion de la base de données sont incorrectes. Les solutions comprennent:
Vérifiez que le nom d'utilisateur et le mot de passe sont corrects.
Assurez-vous que l'utilisateur MySQL a des autorisations suffisantes pour se connecter à la base de données spécifiée.
Cette erreur indique que la base de données demandée n'existe pas sur le serveur. Les solutions comprennent:
Vérifiez que le nom de la base de données est correct.
Assurez-vous que la base de données est créée sur le serveur MySQL.
Avec mysqli :: $ errno et mysqli_options , nous pouvons diagnostiquer et résoudre les problèmes de connexion MySQL. L'utilisation de ces outils correctement peut nous aider à identifier les problèmes en temps opportun et à prendre des mesures appropriées pour les réparer, en garantissant la stabilité et la fiabilité des opérations de base de données.