Robert B.: Eintrag in mysql Datenbank behandeln

Beitrag lesen

Moin Steffen,

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 du keine Prepared Statements verwenden möchtest, 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"""

Das ist korrekt maskiert für den Kontextwechsel nach CSV.

und dann nach dem db-Eintrag:

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

Steht das so in der Datenbank? Hast du eventuell irgendwo magic quotes in Kombination mit dem fehlenden Decodieren aus dem CSV-Kontext?

Mein 2. Problem ist:

Ich sammel Bemerkungen zu einem Artikel in einem Array. Anschließend möchte ich die Bemerkungen zeilengetrennt in die Spalte (text) übernehmen.

$eintragBemerkung = implode('\n',$Bemerkung);
$eintragBemerkung = mysqli_real_escape_string($sql,trim($eintragBemerkung))

Heraus kommt:

D10\nlieferbar

Was mache ich denn da falsch?

'\n' ist etwas Anderes als "\n".

Viele Grüße
Robert