Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist dies eine sichere Methode zum Einfügen von Formulardaten in eine MySQL-Datenbank?

Das von Ihnen bereitgestellte Beispiel fügt die Post-Variablen in die Datenbank ein, ohne sie zuerst auf bösartige Benutzereingaben zu analysieren. Verwenden Sie Typumwandlung, Escape-/Filterfunktionen, vorbereitete Anweisungen usw., bevor Sie sie verwenden, um mit Ihrer DB zu interagieren.

Eine allgemeine Regel lautet, Benutzereingaben niemals zu vertrauen. IMMER!

Sehen Sie sich Folgendes an:Der beste Weg, um die SQL-Injektion zu stoppen in PHP

Als Antwort auf Ihre Frage, hier ist, wie Sie das gesamte Formular mit vorbereiteten PDO-Anweisungen handhaben würden.

$stmt = $db->prepare('INSERT INTO Persons (FirstName, LastName, Age) VALUES (:first_name, :last_name, :age)');

$stmt->execute(array(':first_name' => $first_name,':last_name' => $last_name, ':age' => $age));

Wenn Sie nur eine Spalte in den Datensatz einfügen möchten, wie Sie gefragt haben, lautet die Syntax:

$stmt = $db->prepare('INSERT INTO Persons (FirstName) VALUES (:first_name)');

$stmt->execute(':first_name', $first_name);