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.
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.
<?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.
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.
<?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.
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.
<?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.
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: