Mailinglisten-Archive |
Matthias Slovig schrieb am Mittwoch, den 1. September 1999: > Versuch doch einfach, die Anführungszeichen mit \ zu escapen. > also: > > $anwid=mysql_query("select * from grunz where > (name="\"$suchname\"")"); Ich hatte in meiner anderen Antwort an Nadja noch vergessen, daß genau die Handhabung solcher Backslashes im alten PHP/FI2 ziemlich krank ist und ständig zu Überraschungen führt: PHP/FI2: $a = "Er hieß \"Dschango\", sagte er.\n"; Die Backslashes führen hier nur dazu, daß der Parser noch nicht das Ende des Strings erkennt. In der Variable $a sind die Backslashes aber tatsächlich mit drin! (Er hieß \"Dschango\", sagte er.\n) Der echo-Befehl filtert diese dann aber wieder heraus: PHP/FI2: echo $a; --> Er hieß "Dschango", sagte er.<newline> Funktionen wie mysql_query behandeln die noch enthaltenen Backslashes aber nicht speziell, so daß mit den Zeilen PHP/FI2: $sql = "select * from grunz where (name=\"$suchname\")"; PHP/FI2: $anwid = mysql_query($sql); tatsächlich diese SQL-Anweisung an MySQL geschickt wird: select * from grunz where (name=\"$suchname\") Und das gibt einen MySQL-Fehler. Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ > PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
php::bar PHP Wiki - Listenarchive