Antwort an „Auge“ verfassen

Hallo

wenn ich einen Eintrag in meine mysql-db vornehme, behandel ich ihn normalerweise mit mysqli_real_escape_string($sql,trim($string)).

Ist das richtig so?

Wenn in $string ein String steckt, ja.

Ich frag, weil ich immer wieder Probleme habe mit Strings, die Anführungszeichen enthalten. Da wird schonmal aus

Verbinder kpl. 3/8"

nach dem Excel daraus eine CSV-Datei macht:

"Verbinder kpl. 3/8"""

Soweit, so normal. Du benutzt als Zollzeichen das doppelte Anführungszeichen und jenes wird in einem String, der in CSV in doppelten Anführungszeichen eingeschlossen ist, mit einem weiteren doppelten Anführungszeichen maskiert. Typografisch korrekt ist das nicht und mit dem richtigen Zeichen – laut Wikipedia dieses hier: – würde dieses Problem nicht bestehen.

und dann nach dem db-Eintrag:

\"Verbinder kpl. 3/8\"\"\"

Ab hier wird's komisch. Mit einer Funktion, die CSV im verarbeitenden Programm in Variablen importiert, sollten erstens die den String einschließenden doppelten Anführungszeichen entfernt werden und zweitens die Maskierung aufgehoben werden. Da du offensichtlich PHP benutzt, wäre das die Funktion fgetcsv. Es würde dann das herauskommen:

Verbinder kpl. 3/8"

Wird dieser String mit mysqli_real_escape_string behandelt, stünde auch genau dieser String in der Datenbank.

Tschö, Auge

--
200 ist das neue 35.
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen