Position actuelle: Accueil> Derniers articles> Mysqli :: débogage et mysqli_report () Compétences de débogage conjoint

Mysqli :: débogage et mysqli_report () Compétences de débogage conjoint

M66 2025-06-01

Les opérations de base de données de débogage sont l'un des liens les plus critiques lors du développement d'applications PHP. Surtout lorsque les applications s'appuient sur les bases de données MySQL, il est particulièrement important de dépanner les erreurs de requête et d'optimiser les interactions de la base de données. PHP fournit deux outils puissants pour aider les développeurs à mieux déboguer les interactions de la base de données MySQL: mysqli :: debug () et mysqli_report () .

Cet article présentera comment utiliser ces deux méthodes pour déboguer conjointement les programmes PHP afin d'améliorer l'efficacité et la précision du débogage.

1. Le rôle de MySqli :: Debug ()

MySQLI :: Debug () est une méthode pour activer le débogage du client MySQL. Il peut afficher toutes les informations liées à la connexion de la base de données MySQL, y compris les détails de l'exécution de la requête et la communication entre le client MySQL et le serveur. Ceci est très utile pour le positionnement des problèmes, en particulier lorsqu'il s'agit de requêtes complexes.

Comment utiliser MySqli :: Debug ()

 <?php
// créer MySQLi connecter
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le mode de débogage
$mysqli->debug("d:t:o,/tmp/mysql.trace");

// Effectuer des opérations de base de données
$result = $mysqli->query("SELECT * FROM users");

// Résultats de traitement
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "<br>";
}

// 关闭connecter
$mysqli->close();
?>

Dans le code ci-dessus, $ mysqli-> debug () permet le mode de débogage et spécifie l'emplacement de la sortie de débogage. Les informations de débogage seront sorties dans le fichier /tmp/mysql.trace . Vous pouvez ajuster le nom et le nom du fichier au besoin.

2. Le rôle de mysqli_report ()

mysqli_report () vous permet de définir le niveau de rapport de PHP lorsqu'une erreur MySQL se produit. Grâce à cette fonction, vous pouvez contrôler la façon de signaler les erreurs, ce qui facilite la détection et la localisation des problèmes pendant le développement. MySqli_Report () prend en charge une variété de types de rapports d'erreur, tels que mysqli_report_error (erreur de rapport), mysqli_report_strict (mode strict, exception de lancer), etc.

Comment utiliser mysqli_report ()

 <?php
// Activer le mode strict,faire une exception
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// créer MySQLi connecter
$mysqli = new mysqli("localhost", "username", "password", "database");

// Exécuter une requête incorrecte
$result = $mysqli->query("SELECT * FROM non_existent_table");

// 关闭connecter
$mysqli->close();
?>

Dans ce code, les modes de rapport d'erreur et d'exception sont activés via mysqli_report (mysqli_report_error | mysqli_report_strict) . Lorsqu'une erreur de requête se produit, PHP lancera une exception et affichera un message d'erreur détaillé. Cela aide à localiser les problèmes plus rapidement.

3. MySqli :: Debug () et mysqli_report () sont utilisés en conjonction

L'utilisation de mysqli :: debug () et mysqli_report () peut rendre le débogage plus efficace et précis. Lorsqu'une connexion de base de données ou une erreur de requête se produit, MySQLI_REPORT () nous fera savoir l'erreur dès que possible, tandis que MySQLI :: Debug () fournit des informations détaillées d'interaction de la base de données, ce qui contribue à une analyse approfondie et à l'optimisation des problèmes.

Exemple: Utilisez MySqli :: Debug () et MySQLI_Report () en conjonction

 <?php
// Activer le mode strict,faire une exception
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// créer MySQLi connecter
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le mode de débogage
$mysqli->debug("d:t:o,/tmp/mysql.trace");

// Exécuter une requête incorrecte
$result = $mysqli->query("SELECT * FROM non_existent_table");

// Résultats de traitement
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "<br>";
}

// 关闭connecter
$mysqli->close();
?>

Dans cet exemple, mysqli_report () est utilisé pour définir le mode strict et les rapports d'erreurs, tandis que mysqli :: debug () est utilisé pour activer la sortie debug. De cette façon, lorsqu'une erreur se produit dans la requête, PHP lancera une exception, et vous pouvez également afficher la communication entre le client MySQL et le serveur pour vous aider à comprendre plus profondément ce qui se passe.

4. Remplacement du nom de domaine URL

Au cours du processus de développement réel, certaines ressources externes peuvent être utilisées, telles que les demandes d'API, les connexions de base de données, etc. Si le code contient des URL, nous vous recommandons de remplacer les noms de domaine de ces URL par M66.net pour assurer une meilleure sécurité et normativité. Par exemple: