Aktueller Standort: Startseite> Neueste Artikel> Wie verwende ich MySQLI :: $ errno für eine gültige Fehlermeldung in PHP?

Wie verwende ich MySQLI :: $ errno für eine gültige Fehlermeldung in PHP?

gitbox 2025-08-14

Wie verwende ich MySQLI :: $ errno für eine gültige Fehlermeldung in PHP?

In der PHP -Entwicklung sind Datenbankoperationen der häufigste Teil. Bei der Interaktion mit Datenbanken, insbesondere bei Verwendung von MySQLI -Erweiterungen, sind Fehleraufnahmen und Aufzeichnungen für Programmdebuggen und Wartung von entscheidender Bedeutung. MySQLI stellt die Attribute von MySQLI :: $ Errno und MySQLI :: $ Fehler bereit, um Entwicklern zu helfen, die spezifischen Ursachen von Fehlern in Datenbankoperationen zu verstehen.

In diesem Artikel wird vorgestellt, wie MySQLI :: $ errno zur effektiven Fehlerprotokollierung verwendet wird, und hilft Entwicklern, Fehler besser zu behandeln, die möglicherweise während Datenbankverbindungen und -Operationen auftreten.

1. Was ist MySQLI :: $ errno?

Mysqli :: $ errno ist eine Eigenschaft der MySQLI -Klasse, mit der der Fehlercode gespeichert wird, wenn in der letzten Datenbankoperation ein Fehler aufgetreten ist. Dieser Fehlercode ist ein Ganzzahlwert, der den auftretenden spezifischen Fehlertyp identifiziert. MySQLI :: $ errno kann nur gültige Werte abrufen, wenn in einer Datenbankoperation ein Fehler auftritt. Wenn kein Fehler auftritt, beträgt sein Wert 0.

Darüber hinaus enthält das Attribut von MySQLI :: $ Fehler detaillierte Beschreibungsinformationen des Fehlers (d. H. Fehlermeldung). Diese beiden Attribute können Entwicklern helfen, das Problem genau zu diagnostizieren.

2. Common MySQLI -Fehlercodes

Der Fehlercodewert von MySQLI :: $ errno ist vordefiniert. Hier sind einige häufige Fehlercodes und ihre Bedeutungen:

  • 1045 : Autorisierungsfehler beim Zugriff auf die Datenbank (z. B. Benutzername oder Kennwortfehler).

  • 2002 : Die Verbindung ist fehlgeschlagen, normalerweise weil der Datenbankhost nicht erreichbar ist.

  • 1146 : Die Tabelle existiert nicht.

  • 1064 : SQL -Syntaxfehler.

3. Verwenden Sie MySQLI :: $ errno, um Fehler zu protokollieren

In der tatsächlichen Entwicklung müssen wir zusätzlich zu den Fehlern diese Fehler in der Regel für die spätere Anzeige und Analyse aufzeichnen. Hier ist ein grundlegendes Beispiel, das zeigt, wie Sie MySQLI :: $ Errno und MySQLI :: $ ERROR FEHLER FEHLER -Protokollierung verwenden:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Konfigurieren Sie die Datenbankverbindungsparameter</span></span><span>
</span><span><span class="hljs-variable">$host</span></span><span> = </span><span><span class="hljs-string">'localhost'</span></span><span>;
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">'password'</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">'test_db'</span></span><span>;

</span><span><span class="hljs-comment">// Erstellen Sie eine Datenbankverbindung</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$host</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);

</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-comment">// Log -Verbindungsfehler</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
    </span><span><span class="hljs-keyword">exit</span></span><span>();
}

</span><span><span class="hljs-comment">// Eine Frage ausführen</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM non_existent_table"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);

</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Abfrage erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// Wenn die Abfrage fehlschlägt,Protokollfehlerinformationen und Fehlercodes</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;errno . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;error . </span><span><span class="hljs-string">"\n"</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
}

</span><span><span class="hljs-comment">// Schließen Sie die Verbindung</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Versuchen Sie in diesem Beispiel zunächst, eine Verbindung zur Datenbank herzustellen. Wenn die Verbindung fehlschlägt, wird ein Verbindungsfehler in die Datei "Fehler.log" angemeldet. Als nächstes führen wir einen Abfragebetrieb durch und versuchen, Daten aus einer nicht existierenden Tabelle zu erhalten. Wenn die Abfrage fehlschlägt, erfassen wir die Fehlermeldung und zeichnen den Fehlercode und die Fehlermeldung zusammen.

4. Kombinieren Sie Zeitstempel für die Fehlerprotokollierung

In einer Produktionsumgebung muss die Aufzeichnung von Fehlerprotokollen ein gewisses Maß an Aktualität aufweisen, sodass die Fehlerprotokolldatensätze zu den Fehlerprotokolldatensätzen hinzugefügt werden können, was die Probleme einfacher zu verfolgen ist.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Holen Sie sich die aktuelle Zeit</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);

</span><span><span class="hljs-comment">// Eine Frage ausführen并记录错误日志</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// Fügen Sie dem Protokoll Zeitstempel hinzu</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"[<span class="hljs-subst">$date</span></span></span><span>] Error: " . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;errno . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;error . </span><span><span class="hljs-string">"\n"</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Indem wir die aktuelle Zeit zu jedem Fehlerprotokoll hinzufügen, können wir die spezifische Zeit der einzelnen Fehler deutlich sehen und den Entwicklern dabei helfen, eine genauere Fehlerbehebung durchzuführen.

5. Verwaltung und Optimierung von Fehlerprotokollen

Im Laufe der Zeit können Fehlerprotokolldateien extrem groß werden und sich auf die Systemleistung und die Wartbarkeit auswirken. Daher ist es sehr wichtig, regelmäßig Fehlerprotokolle zu reinigen und zu archivieren. Die folgenden Methoden können verwendet werden, um die Verwaltung von Fehlerprotokollen zu optimieren:

  1. Regelmäßiges Archiv und Reinigung: Richten Sie eine geplante Aufgabe ein, um Fehlerprotokolldateien regelmäßig zu archivieren und alte Protokolldateien zu reinigen.

  2. Protokolldrehung: Verwenden Sie die Protokollrotationstools (z. B. lehnes Logrotat ), um die Größe der Protokolldateien automatisch zu verwalten.

  3. Bewertungsprotokolle: Gemäß der Schwere des Fehlers werden unterschiedliche Protokollebenen (z. B. Informationen, Warnungen, Fehler) zur Aufzeichnung verwendet.

6. Zusammenfassung

Mit MySQLI :: $ Errno und MySQLI :: $ ERROR können PHP -Entwickler Fehler in Datenbankvorgängen leicht fangen und aufzeichnen. Die Kombination von Zeitstempeln, Protokolldateimanagement- und Reinigungsstrategien, Fehlerprotokollaufzeichnung und Optimierung kann effektiv durchgeführt werden. Diese Maßnahmen können den Entwicklern nicht nur dabei helfen, während der Entwicklungs- und Testphasen Probleme rechtzeitig zu entdecken, sondern auch wichtige Hinweise für die spätere Fehlerbehebung in der Produktionsumgebung zu bieten.

Ich hoffe, dass Sie durch die Einführung dieses Artikels besser verstehen können, wie Sie MySQLI :: $ errno für eine effektive Fehlerprotokollierung verwenden und auf die tatsächliche Entwicklung anwenden, um die Robustheit und Wartbarkeit Ihres Codes zu verbessern.