Hallo,
MySQL verändert keine Zeilenumbrüche einfach so von sich aus. Da machst Du was falsch.
ich speichere den String $liste von folgender Form:
aaaaaaaaaa\nbbbbbbbbbb\ncccccccccc\n
aaaaaaaaaa\r\nbbbbbbbbbb\r\ncccccccccc\r\n
Wenn nicht mySQL das \r hinzugefügt hat, wo kommt es denn dann her?
von der API (hier von Perl). MySQL verfälscht solche Daten nicht.
Nehmen wir an, wir haben eine Tabelle example mit den Spalten id (integer) und content (VARCHAR(100)).
-- Wir fügen ASCII-Zeichen 10 (0x0A), das was Du für \n hältst.
INSERT INTO example (
id,
content
)
VALUES (
5,
[link:http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_char@title=CHAR](10)
);
Query OK, 1 row affected (0.00 sec)
-- und schauen uns an, was MySQL abgespeichert hat,
-- in Hex-Werte umgewandelt, um nicht böse überrascht zu werden,
-- schließlich ist ein Zeilenumbruch ein nichtdruckbares Zeichen.
SELECT
[link:http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_hex@title=HEX](content)
FROM
example
WHERE
id = 5;
HEX(content)
------------
0A
------------
1 row in set (0.02 sec)
1 Byte mit dem Wert 0x0A, den Du für \n hälstst - völlig erwartungsgemäß und völlig unverfälscht.
Ich kann mir vorstellen, dass Dir der Artikel Plattformübergreifendes Handling von Zeilenumbrüchen weiterhelfen kann.
Freundliche Grüße
Vinzenz