Hallo!
Ich möchte gerne PHP-Quelltext in die Datenbank einfügen, das funktioniert auch ganz wunderbar, allerdings für meine Verhältnisse verdächtig zu gut. Ich habe in etwa folgenden (sinngemäßen) code:
(Jeweils dort wo SLASH steht habe ich einen Backslash (\) eingefügt, aber der Syntax-Highlighter scheint den zu killen...)
Meines Wissens dürfte doch nun folgendes passieren: Wenn die Variable $test im String der an mysql_query() übergeben wird aufgelöst wird, sollte sich soetwas hier ergeben:
Ich würde also erwarten, dass MySQL denkt, dass die Zeichenkette bereits nach '$test = ' beendet ist, da ja hier das entsprechend passende Hochkomma erscheint.
Witzigerweise passiert aber folgendes: Es funktioniert! Ganz ohne Probleme wird der Code vollkommen korrekt in die Datenbank geschrieben, und kann auch tadellos wieder ausgelesen werden. Ich hatte vorher mysql_real_escape_string() außendrum gemacht, aber dann waren überall Slashes, und die wurden auch in der Datenbank gespeichert. Kann mir dieses Verhalten einer erklären? Wäre echt interessant, danke schonmal!
Ich möchte gerne PHP-Quelltext in die Datenbank einfügen, das funktioniert auch ganz wunderbar, allerdings für meine Verhältnisse verdächtig zu gut. Ich habe in etwa folgenden (sinngemäßen) code:
PHP-Code:
$code = '$test = SLASH'22SLASH'; echo $test;';
mysql_query("UPDATE tablle SET code = '$test'");
Meines Wissens dürfte doch nun folgendes passieren: Wenn die Variable $test im String der an mysql_query() übergeben wird aufgelöst wird, sollte sich soetwas hier ergeben:
Code:
UPDATE tablle SET code = '$test = '22'; echo $test;'
Witzigerweise passiert aber folgendes: Es funktioniert! Ganz ohne Probleme wird der Code vollkommen korrekt in die Datenbank geschrieben, und kann auch tadellos wieder ausgelesen werden. Ich hatte vorher mysql_real_escape_string() außendrum gemacht, aber dann waren überall Slashes, und die wurden auch in der Datenbank gespeichert. Kann mir dieses Verhalten einer erklären? Wäre echt interessant, danke schonmal!
Kommentar