Bei der Entwicklung von PHP -Anwendungen sind Datenbankfehler eine der häufigsten Ausnahmen, insbesondere wenn die MySQLI -Erweiterung für Datenbankvorgänge verwendet wird, können Entwicklern den Entwicklern dabei helfen, Probleme schneller zu entdecken und zu lösen. In diesem Artikel wird vorgestellt, wie Sie MySQLI :: $ errno verwenden, um Datenbankfehler zu erfassen und Fehlermeldungen an Sentry oder andere Überwachungsplattformen zu melden, um sicherzustellen, dass Ihr System stabil und effizient bleibt.
Mysqli :: $ errno ist eine sehr wichtige Eigenschaft in der MySQLI -Klasse. Es wird verwendet, um den Fehlercode des letzten Datenbankvorgangs zu erhalten. Wenn die Operation erfolgreich ist, wird ERRNO 0 zurückgegeben, und wenn ein Fehler auftritt, wird der entsprechende Fehlercode zurückgegeben. Mit dieser Eigenschaft können Sie leicht feststellen, ob der Datenbankvorgang erfolgreich ist.
Bei der Durchführung von Datenbankvorgängen führen wir normalerweise die Fehlererkennung durch, um Ausnahmen sofort zu erkennen und zu verarbeiten. Ein einfaches Beispiel ist wie folgt:
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
exit();
}
$query = "SELECT * FROM nonexistent_table";
$result = $mysqli->query($query);
if ($mysqli->errno) {
echo "SQL Fehlercode: " . $mysqli->errno . " Fehlermeldung: " . $mysqli->error;
}
?>
Das obige Codebeispiel zeigt an, wie Sie MySQLI :: $ errno verwenden, um Fehler zu fangen und entsprechende Fehlermeldungen beim Erstellen einer Abfrage auszugeben.
Sentry ist eine beliebte Fehlerverfolgungs- und Überwachungsplattform, mit der Entwickler Fehler in Echtzeit fangen und umgehen können. Um Fehlermeldungen an Sentry zu senden, ist der Sentry SDK zuerst erforderlich.
Verwenden Sie den Komponisten, um den Sentry PHP SDK zu installieren:
composer require sentry/sdk
Integrieren Sie Sentry in Ihren Code, um den Fehler zu melden. Der Code lautet wie folgt:
<?php
require 'vendor/autoload.php';
// Initialisierung Sentry
Sentry\init(['dsn' => 'https://your_sentry_dsn_url@m66.net']);
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
exit();
}
$query = "SELECT * FROM nonexistent_table";
$result = $mysqli->query($query);
if ($mysqli->errno) {
// Datenbankfehler fangen,Und melden Sie es an Sentry
Sentry\captureException(new Exception("SQL Fehlercode: " . $mysqli->errno . " Fehlermeldung: " . $mysqli->error));
echo "Es ist ein Fehler aufgetreten,Gemeldet an der Überwachungsplattform。";
}
?>
Wenn MySQLI im obigen Code eine Abfrage ausführt, wird bei einem Fehler die Fehlermeldung an die Sentry -Plattform zur Überwachung über die Sentry \ captureException () -Methode gemeldet.
Zusätzlich zu Sachen können Sie Fehlermeldungen an andere Überwachungsplattformen senden. Hier sind die grundlegenden Integrationsmethoden mit verschiedenen Plattformen:
Bugsnag ist ein weiteres beliebtes Fehlerüberwachungsinstrument. Sie können auf folgende Weise Fehler an Bugsnag senden:
require 'vendor/autoload.php';
// Initialisierung Bugsnag
Bugsnag::start('your_bugsnag_api_key');
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
exit();
}
$query = "SELECT * FROM nonexistent_table";
$result = $mysqli->query($query);
if ($mysqli->errno) {
// Datenbankfehler fangen,Und melden Sie es an Bugsnag
Bugsnag::notifyException(new Exception("SQL Fehlercode: " . $mysqli->errno . " Fehlermeldung: " . $mysqli->error));
echo "Es ist ein Fehler aufgetreten,Gemeldet Bugsnag。";
}
Logrocket ist ein weiteres Tool, das Front-End- und Back-End-Fehlerverfolgung unterstützt. Wenn Ihr PHP -Backend Logrocket integrieren muss, können Sie Fehlermeldungen über die API melden:
require 'vendor/autoload.php';
// LogRocket integriert (Annahmen LogRocket PHP SDK Existiert bereits)
LogRocket::init('your_logrocket_project_id');
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
exit();
}
$query = "SELECT * FROM nonexistent_table";
$result = $mysqli->query($query);
if ($mysqli->errno) {
// Datenbankfehler fangen,Und melden Sie es an LogRocket
LogRocket::captureError("SQL Fehlercode: " . $mysqli->errno . " Fehlermeldung: " . $mysqli->error);
echo "Es ist ein Fehler aufgetreten,Gemeldet LogRocket。";
}
Basierend auf dem obigen Inhalt können Sie sich auf das folgende vollständige Beispiel verweisen, MySQLI :: $ errno verwenden, um Datenbankfehler zu fangen und Sentry zu melden:
<?php
require 'vendor/autoload.php';
// Initialisierung Sentry
Sentry\init(['dsn' => 'https://your_sentry_dsn_url@m66.net']);
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
exit();
}
$query = "SELECT * FROM nonexistent_table";
$result = $mysqli->query($query);
if ($mysqli->errno) {
// Datenbankfehler fangen,Und melden Sie es an Sentry
Sentry\captureException(new Exception("SQL Fehlercode: " . $mysqli->errno . " Fehlermeldung: " . $mysqli->error));
echo "Es ist ein Fehler aufgetreten,Gemeldet Sentry。";
}
?>
Durch die Verwendung der Eigenschaft von MySQLI :: $ errno können Sie Fehler in Datenbankvorgängen auf einfache Weise erfassen und sie auf Überwachungsplattformen wie Wachposten, Bugsnag oder Leiter melden. Auf diese Weise können Sie unverzüglich potenzielle Probleme identifizieren und die Stabilität und Wartbarkeit Ihres Systems verbessern.
Denken Sie bei der Integration dieser Überwachungstools daran, das für Ihr Projekt geeignete SDK auszuwählen und es dementsprechend entsprechend der Plattformdokumentation zu konfigurieren.