wenn mysql_query() fehlschlägt, was zu tun ist?
Manchmal so passiert, dass mysql_query() fehlschlägt, Daten EINZUFÜGEN und ich bin mir dessen nicht bewusst. Die Frage ist also, wie kann ich wissen, Wann es passiert?
- Ich glaube nicht, dass diese Frage downvotes verdient. Es ist einfach, aber es ist einigermaßen gut formuliert und die Antworten so weit, aufrichtig gewesen. Sie jerkfaces aus Pod-Sechs müssen es Ausschneiden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter Angabe der Dokumentations-Seite
mysql_query
:So, um zu erkennen, ob es ein Fehler gewesen ist oder nicht, musst du testen den Rückgabewert der Aufruf
mysql_query
:Dann, was können Sie tun ?
mysql_error
undmysql_errno
.Denken Sie aber daran : der Benutzer braucht nicht zu wissen (und nicht verstehen) die technischen Fehler Meldung -- so zeigen Sie nicht.
Können Sie mysql_error php.net/mysql_error um eine bessere Erklärung, dass Sie sich dann entweder anzeigen oder in einer Datei protokollieren.
Schauen, dass ich normalerweise tun ist, wie im Beispiel,
Dies ist eine gute Kontrolle für jede Art von Abfragen
empfehlen, ein wrapper für mysql_query, erkennt Fehler und meldet die Abfrage plus mysql_error irgendwo
Wenn Sie mit einem vernünftigen client-Bibliothek, wird eine Ausnahme geworfen, wenn ein SQL-Befehl schlägt fehl, und Sie können überprüfen, die Fehler-code programmatisch zu wissen, was zu tun ist.
Wenn Sie keine code-handling, dass bestimmte Fehler Weg ist, sollten Sie wahrscheinlich führen Sie ein standard-Fehler-handler, die protokolliert den Fehler, stack-trace und einige andere debug-Informationen in eine log.
haben Sie bei der Analyse Ihrer sql. haben Sie escape Ihre Parameter? klingt wie dies könnte das problem sein. Sie können fügen Sie Ihre sql-damit wir Ihnen helfen können.
zeigen den Fehler, Sie können zB.
.
Wenn die Ursache des Fehlers ist deadlock, möchten Sie vielleicht versuchen Sie es erneut.
Können Sie überprüfen, wie viele Zeilen hat MySQL eingefügt/aktualisiert/gelöscht werden, indem Sie diese Abfrage direkt nach dem insert/update/delete-Abfrage.
Wenn diese zurück
0
Ihr insert ist fehlgeschlagen. Wenn es zurück1
oder mehr erreicht haben.Finden Sie unter: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_row-count
Wahrscheinlich können Sie überprüfen, LAST_INSERT_ID() (mysql_insert_id() in PHP). Vorausgesetzt, dass die Tabelle auto_increment-Spalte.