Gibt es eine Möglichkeit, zwischen Fehlermeldungen zu unterscheiden, die von MySQL zurückgegeben werden, wenn die Abfrage falsch erstellt wird VS Wenn die Benutzereingabe falsch eingegeben wird?MySQL-Fehler bei falscher Abfrage VS bei falscher Eingabe
Zum Beispiel:
//WRONG QUERY
try {
INSERT into table_name ('clm1','clm2') values('val1','val2'); //BAD query
}
catch (PDOException $e) {
echo $e->getMessage(); //display the error message returned
}
VS.
//wrong user input
try {
INSERT INTO table_name ('unique_clm1') value('duplicate_value_from_user');
}
catch (PDOException $e) {
echo $e->getMessage(); //display the error message returned
}
Grund:
Wenn es einen Fehler in Abfrage durch den Entwickler geschrieben; der Fehler muss als roher MySQL-Fehler zum Debuggen angezeigt werden ...... während ein schlechter Benutzereintrag als eine Fehlermeldung für den Benutzer angezeigt werden muss, ohne den normalen Fluss des Codes zu unterbrechen .....
Benutzereingaben sollten validiert und bereinigt werden, bevor sie die Datenbank erreichen. Mit anderen Worten, schlechte Benutzereingaben sollten * idealerweise * niemals ein Faktor sein, wenn Sie db-Abfragen ausführen. –
Ich bin mir nicht sicher, ob es eine gute Idee ist, sich auf die Datenbank zur Validierung der Benutzereingabe zu verlassen. Sie sollten dies in Ihrem Code tun und den Benutzer warnen, bevor Sie überhaupt zum DB INSERT – Galz
Input validation kommen. Dann sagen Sie dem Benutzer, was falsch ist, und versuchen Sie es erneut. – Irvin