Heim >Datenbank >MySQL-Tutorial >Warum werden meine Formularwerte nicht in meine MySQL-Datenbank eingefügt?
Problem:
Das Einfügen von Werten aus einem HTML-Formular in eine MySQL-Datenbank ist nicht erfolgreich ausgeführt, und die Datenbank bleibt bestehen leer.
Lösung:
Der bereitgestellte PHP-Code enthält eine SQL-Abfrage, die als String-Variable gespeichert ist:
$sql = "INSERT INTO users (username, password, email) VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";
Diese Abfrage ist jedoch nicht ausgeführt. Um eine Abfrage auszuführen, müssen Sie MySQL-Funktionen wie vorbereitete Anweisungen verwenden, um die Sicherheit und Integrität Ihrer Daten zu gewährleisten.
Best Practice: Verwendung vorbereiteter Anweisungen
Vorbereitete Anweisungen Schützen Sie sich vor SQL-Injection, indem Sie die Abfrage von der Benutzereingabe trennen. So verwenden Sie sie:
Bereiten Sie die SQL-Anweisung vor:
$sql = "INSERT INTO users (username, password, email) VALUES (?,?,?)";
Binden Sie die Eingabe Variablen:
$stmt = $mysqli->prepare($sql); $stmt->bind_param("sss", $_POST['username'], $_POST['email'], $_POST['password']);
Führen Sie die vorbereitete Anweisung aus:
$stmt->execute();
Zusätzlich Sicherheitsmaßnahme:
Um die Sicherheit zu erhöhen, speichern Sie Passwörter stattdessen in einem verschlüsselten Hash-Format von Klartext mit passwort_hash.
Das obige ist der detaillierte Inhalt vonWarum werden meine Formularwerte nicht in meine MySQL-Datenbank eingefügt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!