2016-06-10 5 views
0

In meinem Code verwende ich vorbereitete Anweisungen, um eine Datenbank zu aktualisieren; Ich würde Datumsfehler (zum Beispiel ein Benutzer, der versucht, seinen Geburtstag auf den 30. Februar zu setzen) mit Mysql Fehler behandeln, anstatt mit "komplexen" Regex das Datum zu überprüfen, das vom Benutzer eingefügt wird. Aber der Datumsfehler ist nicht der einzige Fehler, den ich bekommen kann: Ich kann auch einen Telefonnummernfehler bekommen. Also meine Frage ist: Gibt es eine Möglichkeit zu wissen, welche Datenbank Spalte den Fehler verursacht und damit umgehen?Wie kann ich mysql Fehler in PHP behandeln?

+0

einige Client-Seite Validierung tun, bevor es sogar PHP und vorbereitete Anweisungen – Matt

+0

stellen Sie sicher, berührt zu lesen Dies bevor Sie irgendeine Art von Gültigkeit für Telefonnummern auferlegen: https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md –

+0

Sie sollten die Daten auf bereinigen den Server (und optional auch auf dem Client), bevor Sie versuchen, diese Daten in Ihre Datenbank einzufügen. – Tex

Antwort

0

Zuerst clientseitig validation. Dann machen Sie die serverseitige Validierung mit PHP. Andernfalls verschwenden Sie einen db-Anruf.

Sie können Fehler mithilfe von Fehlerprotokollen verfolgen.

ini_set("log_errors", 1); 
ini_set("error_log", "/tmp/php-error.log"); 

senden Sie mysql Fehler und params in das Protokoll

error_log("Mysql error".$e." phone number:".$phoneNumber." date:".$date); 

Überprüfen Sie die Datei

tail -f /tmp/php-error.log