Text mit Hochkomma's in DB schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text mit Hochkomma's in DB schreiben

    Hallo,

    bin gerade dabei ein PHPNuke 5.5 Modul zu schreiben und komme einfach nicht weiter. Versuche vergebens mit folgender Zeile Daten in eine MySQL-Datenbank zu schreiben.

    PHP-Code:
    sql_query("insert into ".$prefix."_table values (NULL, '$title', '$text')"$dbi); 
    Nach einigen Tests bin ich darauf gestossen, dass die Variable $text bzw. deren Inhalt das eigentliche Problem ist, da hier Hochkomma's im Text vorkommen.

    Wie bekomme ich nun die Daten, ohne den Inhalt der Variable zu verändern, in die MySQL-Datenbank?

    Gruß

    Jirka

  • #2
    text vor dem schreiben in die DB mit
    $text = addslashes($text);
    so werden die sonderzeichen vor dem einfügen escaped.


    beim holen aus der DB, Text vor der Ausgabe im Browser mit
    $text = stripslashes($text);
    und ggf.
    $text = nl2br($text);
    bearbeiten

    Kommentar


    • #3
      Ok, dachte aber es gibt vielleicht auch eine Möglichkeit die Hochkomma's direkt in die DB zu schreiben.

      Denn das Problem besteht nur, wenn ich den Text aus einer Tabelle einlese und in eine andere schreiben will. Wenn ich aber den Text mittels Formularen (post) an die Variablen übergebe funktioniert es problemlos.

      Jirka
      Zuletzt geändert von PictureArtist; 03.07.2003, 19:53.

      Kommentar


      • #4
        Original geschrieben von PictureArtist
        Wenn ich aber den Text mittels Formularen (post) an die Variablen übergebe funktioniert es problemlos.
        Jirka
        Kann ich mir nicht vorstellen, wenn in deinem text einfache Hochkommata vorkommen, da du im stmt values (NULL, '$text' ... ) nutzt

        Kommentar


        • #5
          Habe es eben nochmal getestet und es funktioniert.

          Jirka

          Kommentar


          • #6
            Original geschrieben von PictureArtist
            Ok, dachte aber es gibt vielleicht auch eine Möglichkeit die Hochkomma's direkt in die DB zu schreiben.

            Denn das Problem besteht nur, wenn ich den Text aus einer Tabelle einlese und in eine andere schreiben will. Wenn ich aber den Text mittels Formularen (post) an die Variablen übergebe funktioniert es problemlos.

            Jirka
            Das ist ja auch klar ... Beim Senden via Formular sind bei Dir wahrscheinlich die magic_quotes_gpc eingeschaltet ... (gpc für GET/POST/COOKIES das ist zumindest die Standardeinstellung). Wenn Du die Daten allerdings aus der Datenbank ausließt wird nicht automatisch escaped ... (es gibt dafür auch noch ein magic_quotes_runtime welches standardmäßig deaktiviert ist) ... ich persönlich würde allerdings die Funktion mysql_real_escape_string() verwenden (PHP >= 4.3.0) weil diese zudem noch den verwendeten Characterset berücksichtigt.
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar

            Lädt...
            X