fastix®: php/mysql - Einfügen in Datenbank via Variablen

Beitrag lesen

$eintrag = "INSERT INTO mitarbeiter (vorname, familienname, alter) VALUES ('.$vor.', '.$fam'., '.$age.')";

Das ist Schrott. Wenn schon:

$eintrag = "INSERT INTO mitarbeiter (vorname, familienname, alter) VALUES ('".$vor."', '".$fam'.", '".$age."')";

Diese Variante wird genommen, wenn die Variablen Elemente von Arrays oder Hashes sind. Innerhalb von "" werden diese nicht ausgewertet.

Beispiel:

$eintrag = "INSERT INTO mitarbeiter (vorname, familienname, alter) VALUES ('".$_POST['vor']."', '".$_POST['fam']."', '".$_POST['$age']."')";

Die andere Variante ist syntaktisch einfacher, geht aber nicht mit Arrays, Hashes:

$eintrag = "INSERT INTO mitarbeiter (vorname, familienname, alter) VALUES ('$vor', '$fam', '$age')";

Das funktioniert auch, die einfachen Quotas werden nicht ausgewertet.

Es gibt noch eine dritte:
$eintrag = "INSERT INTO mitarbeiter (vorname, familienname, alter) VALUES ("$vor", "$fam", "$age")";

Und noch eine vierte, fünfte...

Die Aussagen von TomIRL und Cheatah stimmen auch. Der eine macht es Dir einfacher, der andere sagt: lass es Dir ausgeben und schau Dir den SQL- String an, ob er korrekt ist. Wenn der passt, war Deine Methode richtig.