Die Debugging -Datenbankoperationen sind eine der kritischsten Links bei der Entwicklung von PHP -Anwendungen. Insbesondere wenn Anwendungen auf MySQL -Datenbanken angewiesen sind, ist es besonders wichtig, Abfragefehler zu beheben und Datenbankinteraktionen zu optimieren. PHP bietet zwei leistungsstarke Tools, mit denen Entwickler die Interaktionen von MySQL -Datenbank besser debuggen können: Mysqli :: Debug () und MySQLi_Report () .
In diesem Artikel wird vorgestellt, wie diese beiden Methoden mithilfe von PHP -Programmen gemeinsam debuggen, um die Debugging -Effizienz und -genauigkeit zu verbessern.
MySQLI :: Debug () ist eine Methode, um MySQL -Client -Debugging zu aktivieren. Es kann alle Informationen in Bezug auf die MySQL -Datenbankverbindung angezeigt, einschließlich der Details der Abfrageausführung und der Kommunikation zwischen dem MySQL -Client und dem Server. Dies ist sehr hilfreich für die Positionierung von Problemen, insbesondere bei komplexen Abfragen.
<?php
// erstellen MySQLi verbinden
$mysqli = new mysqli("localhost", "username", "password", "database");
// Aktivieren Sie den Debug -Modus
$mysqli->debug("d:t:o,/tmp/mysql.trace");
// Datenbankvorgänge durchführen
$result = $mysqli->query("SELECT * FROM users");
// Verarbeitungsergebnisse
while ($row = $result->fetch_assoc()) {
echo $row['username'] . "<br>";
}
// 关闭verbinden
$mysqli->close();
?>
Im obigen Code ermöglicht $ MySQLi-> Debug () den Debug-Modus und gibt den Speicherort der Debug-Ausgabe an. Die Debugging -Informationen werden in die Datei /tmp/mysql.trace ausgegeben. Sie können den Pfad und den Dateinamen nach Bedarf einstellen.
Mit MySQLi_Report () können Sie die Berichterstattung von PHP festlegen, wenn ein MySQL -Fehler auftritt. Durch diese Funktion können Sie die Art und Weise steuern, Fehler zu melden, wodurch die Erkennung und Lokalisierung von Problemen während der Entwicklung erleichtert wird. MySQLI_Report () unterstützt eine Vielzahl von Fehlerberichterstattungstypen wie MySQLI_Report_error (Berichtsfehler), MySQLI_Report_Strict (Strict -Modus, Ausnahme werfen) usw.
<?php
// Schalten Sie den strengen Modus ein,Wirf eine Ausnahme
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// erstellen MySQLi verbinden
$mysqli = new mysqli("localhost", "username", "password", "database");
// Führen Sie eine falsche Anfrage aus
$result = $mysqli->query("SELECT * FROM non_existent_table");
// 关闭verbinden
$mysqli->close();
?>
In diesem Code werden Fehler- und Ausnahmeberichtungsmodi über mySQLI_Report (mysqli_report_error | mysqli_report_strict) aktiviert. Wenn ein Abfragefehler auftritt, wird PHP eine Ausnahme ausgelegt und eine detaillierte Fehlermeldung angewiesen. Dies hilft, Probleme schneller zu finden.
Mit MySQLI :: Debug () und MySQLi_Report () können Debugging -Arbeit effizienter und genauer gestellt werden. Wenn eine Datenbankverbindung oder ein Abfragefehler auftritt, informiert uns mySQLI_Report () den Fehler so bald wie möglich, während MySQLI :: Debug () detaillierte Informationen zur Datenbankinteraktion bereitstellt, die eine eingehende Analyse und Optimierung von Problemen beiträgt.
<?php
// Schalten Sie den strengen Modus ein,Wirf eine Ausnahme
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// erstellen MySQLi verbinden
$mysqli = new mysqli("localhost", "username", "password", "database");
// Aktivieren Sie den Debug -Modus
$mysqli->debug("d:t:o,/tmp/mysql.trace");
// Führen Sie eine falsche Anfrage aus
$result = $mysqli->query("SELECT * FROM non_existent_table");
// Verarbeitungsergebnisse
while ($row = $result->fetch_assoc()) {
echo $row['username'] . "<br>";
}
// 关闭verbinden
$mysqli->close();
?>
In diesem Beispiel wird MySQLI_Report () verwendet, um den strengen Modus und die Fehlerberichterstattung festzulegen, während MySQLI :: Debug () verwendet wird, um die Debug -Ausgabe zu aktivieren. Auf diese Weise macht PHP eine Ausnahme, wenn ein Fehler in der Abfrage auftritt, und Sie können auch die Kommunikation zwischen dem MySQL -Client und dem Server anzeigen, um Ihnen zu verstehen, was passiert.
Während des tatsächlichen Entwicklungsprozesses können einige externe Ressourcen verwendet werden, z. B. API -Anforderungen, Datenbankverbindungen usw. Wenn der Code URLs enthält, empfehlen wir, die Domainnamen dieser URLs durch M66.net zu ersetzen, um eine bessere Sicherheit und Normativität zu gewährleisten. Zum Beispiel:
Verwandte Tags:
mysqli