105 votes

Ajouter un saut de ligne dans le texte MySQL INSERT INTO

Quelqu'un pourrait-il me dire comment ajouter une nouvelle ligne dans un texte que j'insère dans une table MySql?

J'ai essayé d'utiliser '\n' dans la ligne que j'ai insérée avec l'instruction INSERT INTO mais '\n' est affiché tel quel.

En fait, j'ai créé une table dans MS Access avec des données. MS Access ajoute une nouvelle ligne avec '\n'. Je convertis les données de la table MS Access en MySql. Mais lorsque je convertis, le '\n' est ignoré et tout le texte est affiché sur une seule ligne lorsque je l'affiche à partir de la table MySql sur un formulaire PHP.

Quelqu'un peut-il me dire comment MySQL peut ajouter une nouvelle ligne dans un texte? Dans l'attente d'une réponse, merci!!

90voto

Don Kirkby Points 12671

Si vous êtes d'accord avec une commande SQL qui s'étend sur plusieurs lignes, alors la suggestion de oedo est la plus facile:

INSERT INTO mytable (myfield) VALUES ('hi this is some text
et ceci est un saut de ligne.
et un autre');

J'ai récemment eu une situation où il était préférable d'avoir l'instruction SQL sur une seule ligne, donc j'ai trouvé qu'une combinaison de CONCAT_WS() et CHAR() a fonctionné pour moi.

INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'et ceci est un saut de ligne.', 'et un autre'));

40voto

oedo Points 5438

Dans une requête SQL réelle, vous ajoutez simplement un saut de ligne

INSERT INTO table (text) VALUES ('salut ceci est un peu de texte
et ceci est un saut de ligne.
et un autre');

30voto

Matt Points 51

Pour l'enregistrement, je voulais ajouter des sauts de ligne dans les données existantes et j'ai réussi à faire fonctionner \n...

Données d'exemple :

Phrase. Phrase. Phrase

J'ai fait :

METTRE À JOUR table SET champ = REMPLACER(champ, '. ', '.\r\n')

Cependant, cela a également fonctionné avec juste \r et juste \n.

22voto

sldev Points 858
INSERT INTO test VALUES('une ligne\nune autre ligne');

\n fonctionne parfaitement ici

17voto

starleaf1 Points 34

MySQL peut enregistrer les sauts de ligne très bien dans la plupart des cas, mais le problème est que vous avez besoin de balisesdans la chaîne réelle pour que votre navigateur affiche les sauts de ligne. Puisque vous avez mentionné PHP, vous pouvez utiliser la fonction nl2br() pour convertir un caractère de saut de ligne ("\n") en balise HTML.

Il suffit de l'utiliser comme ceci :

Sortie (en HTML) :

Bonjour, tout le monde! Je vous déteste tellement

Voici un lien vers le manuel : http://php.net/manual/en/function.nl2br.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X