Wie kann verhindert werden, dass die Datenbank (MySQL) unerwartete Fehler im Framework meldet?
Zum Beispiel habe ich hier zwei Excel-Tabellen-Upload-Funktionen. Natürlich sind die von mir an beiden Stellen geschriebenen Excel-Empfangsdatenverarbeitungsmethoden unterschiedlich, aber wie Sie wissen, dürfen die Namen einiger Felder in der Datenbank nicht leer sein Wenn zwei lokale Excel-Dateien austauschbar hochgeladen werden, wird zu diesem Zeitpunkt ein SQL-Fehler angezeigt, wie unten gezeigt:
Wäre es nicht zu mühsam, wenn ich für alle empfangenen Felddaten eine entsprechende Datenbankbeurteilung vornehmen müsste?
Meine Funktion zum Hochladen von Excel-Tabellen entspricht nur einer Methode, nämlich eins zu eins. Da meine Excel-Struktur unterschiedlich ist, entspricht eine Methode einer Art der Excel-Strukturverarbeitung.
Daher möchte ich eine Lösung finden, die das Erscheinen des SQL-Fehlers auf der Seite verhindern kann. Bitte geben Sie mir einen Rat.
Wie kann verhindert werden, dass die Datenbank (MySQL) unerwartete Fehler im Framework meldet?
Zum Beispiel habe ich hier zwei Excel-Tabellen-Upload-Funktionen. Natürlich sind die von mir an beiden Stellen geschriebenen Excel-Empfangsdatenverarbeitungsmethoden unterschiedlich, aber wie Sie wissen, dürfen die Namen einiger Felder in der Datenbank nicht leer sein Wenn zwei lokale Excel-Dateien austauschbar hochgeladen werden, wird zu diesem Zeitpunkt ein SQL-Fehler angezeigt, wie unten gezeigt:
Wäre es nicht zu mühsam, wenn ich für alle empfangenen Felddaten eine entsprechende Datenbankbeurteilung vornehmen müsste?
Meine Funktion zum Hochladen von Excel-Tabellen entspricht nur einer Methode, nämlich eins zu eins. Da meine Excel-Struktur unterschiedlich ist, entspricht eine Methode einer Art der Excel-Strukturverarbeitung.
Daher möchte ich eine Lösung finden, die das Erscheinen des SQL-Fehlers auf der Seite verhindern kann. Bitte geben Sie mir einen Rat.
Es ist nicht so, dass Datenbankfehler nicht blockiert werden können, aber das ist nicht notwendig und wird weitere Probleme verursachen. Da es sinnvoll ist, dass ein bestimmtes Feld nicht Null sein kann, was sollten Sie tun, wenn Sie bei der späteren Verarbeitung an dieser Stelle ankommen, wenn Sie darauf bestehen, es einzugeben? Daraus ist auch ersichtlich, dass Sie die Gültigkeit der Daten vor dem Einfügen nicht überprüft haben. Die hochgeladenen Daten entsprechen den vom Benutzer eingegebenen Daten und die Eingabe schmutziger Daten muss verhindert werden.
Die übliche Verarbeitungslogik ist:
Lesen Sie die CSV-Datei Zeile für Zeile und verwenden Sie Überprüfungsregeln, um die Daten zu überprüfen. Wenn sie in Ordnung sind, werden sie in $success gespeichert, andernfalls werden sie in $bad gespeichert. Wenn $bad nicht leer ist, muss der Benutzer zunächst in der Anzeigeliste das Verwerfen illegaler Daten bestätigen. Einige durchlaufen die Daten direkt in $success und fügen sie ein. Anschließend wird ein Bericht darüber erstellt, welche Daten eingefügt wurden und welche nicht verarbeitet wurde.
Da Sie CSV in mehreren Formaten haben, sollten Sie natürlich prüfen, ob die aktuell hochgeladene CSV mit der Verarbeitungsmethode übereinstimmt. Was ist sonst, wenn sie tatsächlich gespeichert wird? Ich empfehle wirklich nicht, faul zu sein.
Verwenden Sie einfach try {}catch (Exception $e){}, um Ausnahmen abzufangen
Für Frameworks sollten Sie den Debug-Modus deaktivieren können und es sollte möglich sein, ihn automatisch zu blockieren.
Wenn Sie das leere Feld im Code manuell auf den Standardwert setzen möchten, können Sie selbst einen Filter schreiben. Der Filter ermittelt, ob es leer ist, und gibt in diesem Fall einen Standardwert an.
1. Sie können beim Datenbankdesign einen Standardwert wie 0 definieren. 2. Beim Einfügen dieser Daten in das Programm stellen Sie sicher, dass das Feld user_id einen Wert hat.
Wenn dieses Feld in der Produktion null sein darf, dann ändern Sie die Tabelle
Wenn dies nicht zulässig ist, weist die Fehlermeldung darauf hin, dass ein Problem mit den Daten vorliegt, und das Ignorieren ist gefährlich. Sie sollten
sicherstellen, dass die Quelldaten nicht null sind, anstatt grob zu ignorieren