Sven Rautenberg: MySQL Syntax mit POST und SESSION Variablen

Beitrag lesen

Moin!

ich bin auf einen neuen Server gezogen und der frisst leider meine alte Syntax nicht mehr und liefert mir nen Parse Error:

$sql = "INSERT INTO tabelle (indizierung, name, datum) VALUES ('$indizierung',$_SESSION['name'],$S_POST['datum'])";

Nun ist mir klar, dass ich den String von Hand mit '.' und Stringverknüpfungen manuell knüpfen kann, meine Frage ist aber, ob es einen anderen Weg gibt, die ' zu umgehen, da die Abfrage in Wirklichkeit viel länger ist und ich ne Menge von ihnen habe...

Du mußt sowieso Escaping vornehmen mit mysql_real_escape_string(), der Funktionsaufruf ist aber nicht innerhalb von Strings kapselbar.

Auswege:

sprintf() - da kannst du Variablen und Stringzusammensetzung nett trennen.
mysqli (anstelle von mysql) mit Prepared Statements - dasselbe Verfahren, nur mit automatischem Escaping.

Ansonsten: Passende Funktion bzw. Methode bauen, die den Vorgang im Grundsatz vereinfacht.

- Sven Rautenberg

--
"Love your nation - respect the others."