Bianca: PHP-Formular für Datenbank funktioniert nicht

Beitrag lesen

Nein, das funktioniert so nicht. Gib einen Namen mit ' ein, und du wirst sehen, dass es kaputt ist. PDO und Prepared Statements verhindern solche Fehler. (Prepared Statements gehen auch mit mysqli, aber PDO ist freundlicher zu bedienen.)

Hallo,

dann eben so?

<?php

 // Verbindungs-Objekt samt Zugangsdaten festlegen
 @$db = new mysqli('localhost', 'Benutzer', 'Passwort', 'Datenbankname');

 // Verbindung überprüfen
 if (mysqli_connect_errno()) {
   printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
   exit();
 }

 // Formulardate aus deinem Formular abrufen
 $id     = mysql_real_escape_string($_POST["id"]);
 $nick   = mysql_real_escape_string($_POST["nick"]);
 $vname  = mysql_real_escape_string($_POST["vname"]);
 $nname  = mysql_real_escape_string($_POST["nname"]);

 // SQL-Befehl
 $sql_befehl = " INSERT INTO t_name (id_name, nick, vname, nname) 
                 VALUES ('$id', '$nick', '$vname','$nname')";

 if ($db->query($sql_befehl)) {
   // Meldung bei erfolgreicher Erstellung der Datensätze
   echo "Datensätze erfolgreich angelegt.";  
 } else {
   // Meldung bei Fehlschlag
   echo "Datensätze konnte nicht angelegt werden!";
 }

 // Verbindung zum Datenbankserver beenden
 $db->close();

 ?>

Den Hinweis mit mysql_real_escape_string hast du oben schon gegeben, deshalb habe ich diesen überhaupt nicht berücksichtigt.