von Peter Mayer » Sa 14 Apr, 2001 23:46
Johannes Maurer schrieb:
-------------------------------
>Warum bekomme ich seit einigen Tagen " zurück wenn ich " in eine mysql Tabelle gespeichert habe?
Wenn man eine Zeichenfolge wie "sehr wichtig" ohne weitere Sonderbehandlung einem MySQL-Datenfeld übergibt, interpretiert MySQL das Sonderzeichen " als Ende des übergebenen Strings.
Deshalb muss vor dem Sonderzeichen ein Backslash () gesetzt werden. Dieser Vorgang wird auch als Escaping bezeichnet. Für das manuelle Escaping stehen in PHP die Funktionen addslashes() & stripslashes() zur Verfügung.
Wurde (z.B. vom Provider des Virt. Servers) der Schalter „magic_quotes_gpc“ auf On gesetzt (/usr/local/lib/php.ini), wird das manuelle Escaping überflüssig.
Beim Schalter „magic_quotes_runtime“ handelt es sich um das automatische Escaping von Daten die zum Beispiel aus einer Datenbank gelesen werden.
Beim Update von PHP3 auf PHP4 wird nicht mehr die Datei /usr/local/lib/php3.ini sondern stattdessen die Datei /usr/local/lib/php.ini verwendet. Wenn nun diese Datei noch nicht existiert, nimmt PHP automatisch den Wert "On" für die Variable magic_quotes_runtime an.
Mit den Einstellungen (z.B. vom Provider des Virt. Servers gesetzt)...
magic_quotes_gpc Off
magic_quotes_runtime Off
... in der Datei /usr/local/lib/php.ini müsste wieder alles funktionieren.
mfg
Peter Mayer