wie maskiert man HTML-Code für eine mySQL-Query?

  • Ich möchte über ein Formular HTML-Code eingeben lassen. Dieser soll in eine mySQL-DB per mysql_query() eingefügt werden.
    Der Text soll nach dem Absenden des Formulars in $newText zur Verfügung stehen. Der einfache Befehl

    Code
    mysql_query("INSERT INTO `Content`='".$newText."' WHERE `id`='1');


    führt jedoch nicht zum Ziel. Hier beissen sich die sicher vorkommenden Quotes und DoubleQuotes mit der Stringeinfassung des mysql_query.

    Ich müsste meinen String in $newText also Maskieren und zwar so, dass der Text so in der DB steht, wie auch in der Datei selbst.
    Das klappt bei mir leider nicht. Hatte schon mit stripslashes, addslashes und htmlentities experimentiert, aber das will nicht funktionieren.
    Als Bsp.text habe ich verwended

    Code
    <title>"'Hallo'"</title>

    Kann mir jemand auf die Sprünge helfen? Wie wird richtig maskiert?

    "Carpe Diem" powered by positiv Feelings

  • ich tät mal sagen, dass dein query grundsätzlich falsch ist....

    was ist "insert into content = newText where id = 1"? :?

    einen datensatz einfügen kann man meines wissends nach mit "INSERT INTO tabelle (feld1, feld2) VALUES (wert1, wert2)"

    vielleicht hilft dir es weiter?

  • Ok, da sieht man's mal wieder. Zu schnelle Post's sind einfach fehleranfällig. :?

    Also ich meinte natürlich einen Update wie folgt:

    mysql_query("UPDATE `Content`SET `longtext`='".$newText."' WHERE `id`='"$id."'");

    Content ist der Tabellenname und ID der Datensatz der aktualisiert werden soll.

    "Carpe Diem" powered by positiv Feelings

  • also

    SQL
    UPDATE tabellenname WHERE id=$id (content) VALUES ('$content')


    Hat einen deutlichen Nachteil: Man muss immer genausoviele Werte wie Attribute in der Tabelle vorhanden sind angeben. Das ist nicht gut!

    MrJava

    Code
    "UPDATE Content SET longtext ='".$newText."' WHERE id='".$id."'"


    Ähmmm...wo ist denn da der Unterschied? Du hast ja nur die ``für Tabellenname etc. weggelassen. Das macht die Anweisung nur unsicherer. Ich hatte schon den Fall dass WHERE id='".$id."' falsch mit WHERE ID='".$id."' an mySQL übergeben wurde. Obwohl es keine Groß-/Kleinschreibung gibt, bekam ich die Fehlermeldung "unknown column...".
    Erst durch das Einfassen mit den ``klappte es wie gewünscht.

    Und auch wenn $id ein rein numerischer Wert ist, kann man ihn ungesehen in ' ' einfassen.

    Bedenkt auch, dass der Inhalt von $newText dem folgenden String entspricht:

    Code
    <h3>" ' Hallo ' "</h3>

    Ok, thx 4 Awnser

    "Carpe Diem" powered by positiv Feelings