Thomas: PHP & MySQL

Hallo,
ich hoffe mir kann jemand einen Tipp geben.
Ich schreibe Daten über ein Formular mit folgender Befehlszeile in eine MySQL-Datenbank:
mysql_query("INSERT INTO lexikon (stichwort,text,name,email,url,burl,ip)VALUES("$stichwort","$text","$name","$email","$url","$burl","$ip")");
Wenn in der Variablen $text aber Anführungszeichen stehen wird der Text nicht eingetragen. Was mache ich falsch bzw. muß ich ändern, damit auch Sonderzeichen übernommen werden?

Grüße, Thomas

  1. Hallo (auch) Thomas,

    Ich schreibe Daten über ein Formular mit folgender Befehlszeile in eine MySQL-Datenbank:
    mysql_query("INSERT INTO lexikon (stichwort,text,name,email,url,burl,ip)VALUES("$stichwort","$text","$name","$email","$url","$burl","$ip")");
    Wenn in der Variablen $text aber Anführungszeichen stehen wird der Text nicht eingetragen. Was mache ich falsch bzw. muß ich ändern, damit auch Sonderzeichen übernommen werden?

    Jaja, die leidigen Anfuehrungszeichen und Backslashes...

    Du suchst vermutlich nach Addslashes/Stripslashes
    http://www.php.net/manual/de/function.addslashes.php

    Im Querystring wuerde ich statt " eher ' verwenden:
     ... VALUES('$stichwort','$text','$name','$email','$url','$burl','$ip')");

    Zur Verschachtelung von Einfachen/Doppelten Anfuehrungszeichen siehe:
    http://www.php.net/manual/de/language.types.string.php

    HTH, mfg
    Thomas

    1. Moin!

      Jaja, die leidigen Anfuehrungszeichen und Backslashes...

      Du suchst vermutlich nach Addslashes/Stripslashes
      http://www.php.net/manual/de/function.addslashes.php

      Nein! Wenn, dann sucht er mysql_escape_string() http://de2.php.net/manual/de/function.mysql-escape-string.php.

      Diese Funktion ist weitergehender, als addslashes(), sie nutzt die API von MySQL, und ist damit auch zukunftssicher: Sollten irgendwann irgendwelche weiteren Zeichen escapet werden müssen, wird das mit Sicherheit in der API geändert werden, und man muß sich nicht selbst um diese Änderung kümmern.

      addslashes() hat einen grundsätzlich anderen Aufgabenbereich, also sollte man die Funktion auch nur dann einsetzen, wenn diese Aufgabe gefragt ist.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|