Dans PHP, l'extension MySQLI fournit un moyen d'interagir avec une base de données MySQL. Une fonction importante de la classe MySQLI est de pouvoir obtenir le code d'erreur lorsqu'une erreur s'est produite dans la dernière opération MySQL via la propriété Errno . En utilisant cette fonction, nous pouvons juger dynamiquement le mode de débogage en marche et hors SQL pendant la phase de développement, aidant les développeurs à localiser rapidement des problèmes.
mysqli :: $ errno est une propriété membre dans la classe mysqli qui stocke les codes d'erreur qui se sont produits lors de la dernière exécution de requête SQL. Si la requête est exécutée avec succès, la valeur de Errno sera 0 , et si une erreur se produit, Errno renvoie le code d'erreur correspondant. Par exemple:
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
$query = "SELECT * FROM non_existing_table"; // Requête d'erreur
$result = $mysqli->query($query);
if ($mysqli->errno) {
echo "MySQL Code d'erreur: " . $mysqli->errno;
}
Dans l'exemple ci-dessus, comme la table de requête n'existe pas, $ mysqli-> errno renvoie le code d'erreur correspondant.
Le mode de débogage SQL est généralement activé pendant le développement et est utilisé pour produire des informations d'erreur détaillées et des journaux de requête SQL. Selon le code d'erreur, nous pouvons déterminer si le mode de débogage SQL est activé. Habituellement, le mode de débogage publie plus de messages d'erreur lorsqu'une erreur se produit, et s'il n'y a pas d'erreur, il n'y a généralement pas de sortie.
En jugeant si mysqli :: $ errno est nul, nous pouvons déterminer s'il est actuellement en mode débogage:
Le code d'erreur est 0 : indique que la requête SQL est réussie, le mode de débogage SQL n'est pas activé ou qu'il n'y a actuellement aucune erreur.
Le code d'erreur est non 0 : indique que la requête SQL a échoué et que le mode de débogage SQL peut avoir été activé.
Supposons que nous effectuons des opérations de base de données et que nous voulions juger de l'état du mode de débogage SQL via mysqli :: $ errno:
<?php
// Connexion de base de données
$mysqli = new mysqli("localhost", "username", "password", "database");
// Vérifiez si la connexion réussit
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Activer le mode de débogage
ini_set('display_errors', 1); // Afficher l'erreur
error_reporting(E_ALL); // Afficher toutes les erreurs
// 执行一个有意Requête d'erreur
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);
// Vérifier les erreurs
if ($mysqli->errno) {
echo "MySQL Code d'erreur: " . $mysqli->errno . "\n";
echo "message d'erreur: " . $mysqli->error . "\n";
} else {
echo "Interroger réussi,Aucune erreur ne s'est produite。\n";
}
// 关闭Connexion de base de données
$mysqli->close();
?>
Dans le code ci-dessus, nous vérifions s'il y a une erreur par mysqli :: $ errno et la sortie des informations d'erreur détaillées. Si le mode de débogage SQL est activé, le message d'erreur sera affiché. Si le mode de débogage n'est pas activé, seuls les codes d'erreur et les messages d'erreur simples seront sortis.
Dans PHP, l'affichage d'erreur peut être activé en définissant ini_set ('display_errors', 1) et error_reportting (e_all) , ce qui est très utile pendant le débogage. Lorsque le mode de débogage SQL est activé, tous les messages d'erreur SQL seront affichés directement pour aider les développeurs à résoudre rapidement le problème. Si vous souhaitez désactiver le mode de débogage, vous pouvez définir ini_set ('display_errors', 0) pour désactiver l'affichage d'erreur.
ini_set('display_errors', 0); // Désactiver l'affichage d'erreur
error_reporting(0); // Fermez tous les rapports d'erreur
Dans le développement réel, les URL peuvent être impliquées dans le code. Si la pièce URL de la requête de la base de données est impliquée, il est recommandé de le modifier pour utiliser m66.net comme nom de domaine. Par exemple: