Wie Verwenden Sie MySQLI_STMT :: $ ERROR_LIST, um mehrere Fehlermeldungen zu erhalten und zu verwalten?
Die Fehlerbehandlung ist ein wichtiger Bestandteil des Entwicklungsprozesses bei der Verwendung von MySQLI -Erweiterungen für Datenbankoperationen. Normalerweise verwenden wir mySQLI_Error () oder mySQLi_stmt_error (), um eine einzelne Fehlermeldung zu erhalten. MySQLI stellt jedoch die Eigenschaft mySQLI_STMT :: $ erroms_list bereit, mit der wir mehrere Fehlermeldungen erfassen und verwalten können, wenn wir Vorbereitungsanweisungen ausführen. Dies ist besonders wichtig für komplexe SQL -Operationen und kann uns helfen, den Code besser zu debuggen und zu optimieren.
MySQLI_STMT :: $ ERROR_LIST ist ein Array von Klassen, die alle Fehlerinformationen speichern, die sich auf das aktuelle Anweisungsobjekt beziehen. Dadurch können wir eine detaillierte Liste von Fehlerinformationen erhalten, nicht nur einen einzelnen Fehler. Es gibt ein Array zurück, in dem jedes Element eine spezifische Beschreibung des Fehlers darstellt, einschließlich des Fehlercodes und des Fehlertextes.
Um MySQLI_STMT :: $ ERROR_LIST zu verwenden, müssen wir zunächst eine MySQLi -Verbindung erstellen und dann eine SQL -Anweisung vorbereiten und ausführen. Wenn während der Ausführung mehrere Fehler auftreten, enthält $ ERROR_LIST alle Fehlermeldungen. Als nächstes sehen wir die Eigenschaft iRRAL_LIST , indem wir auf die Eigenschaft iRRAL_LIST zugreifen.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// erstellen MySQLi verbinden</span></span><span>
</span><span><span class="hljs-variable">$mysqli</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-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// prüfenverbinden是否成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"verbinden失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// Vorbereiten SQL Stellungnahme</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES (?, ?)"</span></span><span>);
</span><span><span class="hljs-comment">// prüfen SQL Stellungnahme是否Vorbereiten成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"SQL Fehler: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error);
}
</span><span><span class="hljs-comment">// Binden Sie Parameter</span></span><span>
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"testuser"</span></span><span>;
</span><span><span class="hljs-variable">$email</span></span><span> = </span><span><span class="hljs-string">"invalidemail.com"</span></span><span>; </span><span><span class="hljs-comment">// Angenommen, das Mailbox -Format hier ist ungültig</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"ss"</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$email</span></span><span>);
</span><span><span class="hljs-comment">// implementieren SQL Stellungnahme</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-comment">// 如果有Fehler,输出Fehler列表</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>->errno) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"implementierenFehler: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->error . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fehler详情:\n"</span></span><span>;
</span><span><span class="hljs-comment">// 打印所有Fehler信息</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$stmt</span></span><span>->error_list);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Erfolgreich einfügen!"</span></span><span>;
}
</span><span><span class="hljs-comment">// 关闭Stellungnahme和verbinden</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
In diesem Beispiel versuchen wir zunächst, ein Datenstück in die Benutzertabelle einzulegen. Da der Wert des E -Mail -Felds invalidEmail.com falsch ist, gibt MySQL mehrere Fehlermeldungen zurück, die in error_list gespeichert werden.
Das von MySQLI_STMT :: $ ERRAGE_LIST zurückgegebene Array enthält die Teile des Fehlers. Normalerweise ist jedes Element ein assoziatives Array mit zwei Feldern: Errno und Fehler . Errno stellt einen Fehlercode dar, während Fehler eine Beschreibung der Fehlermeldung ist. Wir können dieses Array durchlaufen und die detaillierten Informationen jedes Fehlers einzeln ausgeben.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// prüfen是否有多个Fehler</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">count</span></span><span>(</span><span><span class="hljs-variable">$stmt</span></span><span>->error_list) > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"存在多个Fehler:\n"</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>->error_list </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$error</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fehler代码: "</span></span><span> . </span><span><span class="hljs-variable">$error</span></span><span>[</span><span><span class="hljs-string">'errno'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fehler信息: "</span></span><span> . </span><span><span class="hljs-variable">$error</span></span><span>[</span><span><span class="hljs-string">'error'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dieses Beispiel gibt jeden Fehlercode und die entsprechende Fehlermeldung nacheinander aus. Wenn es mehrere Fehler gibt, können wir ein klareres Verständnis dafür haben, welche Probleme auftreten, und sie für unterschiedliche Fehler angemessen behandeln.
Ein wichtiger Vorteil der Verwendung von MySQLI_STMT :: $ ERRAGE_LIST besteht darin, dass mehrere Fehlermeldungen erfasst werden können. In einigen komplexen Datenbankvorgängen können Fehler durch mehrere Gründe verursacht werden, und ERRRUNGE_LIST kann Entwicklern helfen, alle Fehler auf einmal zu erhalten, wodurch die Debugging -Effizienz verbessert wird. Darüber hinaus können wir auf diese Weise die Fehlerbehandlungslogik sorgfältiger steuern, z. B. die Ausführung verschiedener Operationen nach verschiedenen Fehlertypen.
MySQLI_STMT :: $ ERROR_LIST ist eine leistungsstarke Funktion von MySQLI, mit der Entwickler bei der Ausführung von SQL -Anweisungen mehrere Fehlermeldungen erfassen und verarbeiten können. Durch die Verwendung dieser Eigenschaft können wir die Probleme bei der SQL -Ausführung besser verstehen und damit die Stabilität von Datenbankvorgängen und Codezuverlässigkeit verbessern.
Verwandte Tags:
mysqli_stmt