web-dev-qa-db-fra.com

Ajout d'un saut de ligne dans MySQL INSERT INTO text

Quelqu'un pourrait-il me dire comment ajouter une nouvelle ligne dans un texte que je saisis dans une table MySql?

J'ai essayé d'utiliser le '\n' Dans la ligne que j'ai entré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 sous la forme PHP.

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

64
Muhammed Umer

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

INSERT INTO mytable (myfield) VALUES ('hi this is some text
and this is a linefeed.
and another');

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

INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
67
Don Kirkby

dans une requête SQL réelle, il vous suffit d'ajouter une nouvelle ligne

INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
31
chris

Pour mémoire, je voulais ajouter des sauts de ligne dans les données existantes et j’ai eu \n pour bien travailler ...

Échantillon de données:

Sentence. Sentence. Sentence

J'ai fait:

UPDATE table SET field = REPLACE(field, '. ', '.\r\n')

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

20
Matt
INSERT INTO test VALUES('a line\nanother line');

\n fonctionne bien ici

11
xtds

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

Il suffit de l'utiliser comme ça:

<?php
echo nl2br("Hello, World!\n I hate you so much");
?>

Sortie ( en HTML):

Hello, World!<br>I hate you so much

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

10
starleaf1
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
5
nancy alajarmeh

Tout d’abord, si vous voulez qu’il soit affiché sur un PHP), le support est HTML et une nouvelle ligne sera donc rendue avec le <br /> tag. Vérifiez le code HTML source de la page - la nouvelle ligne peut éventuellement être rendue comme un saut de ligne. Dans ce cas, votre problème consiste tout simplement à traduire le texte à exporter dans un navigateur Web.

4
David M
  1. Vous devez remplacer \n Par <br/> Avant l'insertion dans la base de données.

    $data = str_replace("\n", "<br/>", $data);

    Dans ce cas, dans la table de base de données, vous verrez <br/> À la place de la nouvelle ligne.

    par exemple.

    First Line
    Second Line

    ressemblera:

    First Line<br/>Second Line

  2. Une autre façon de voir les données avec une nouvelle ligne. Lisez d'abord les données de la base de données. Et remplacez ensuite \n Par <br/>, Par exemple. :

    echo $data;
    $data = str_replace("\n", "<br/>", $data);
    echo "<br/><br/>" . $data;

    sortie:

    First Line Second Line

    First Line
    Second Line


    Vous trouverez des détails sur la fonction str_replace () ici: http://php.net/manual/en/function.str-replace.php

1
Airful

En SQL ou MySQL, vous pouvez utiliser les fonctions char ou chr pour entrer dans un ASCII 13 pour un retour à la ligne, le \n équivalent. Mais, comme @David M l’a déclaré, vous envisagez sans doute que le code HTML indique cette pause et c’est ce qui fonctionnera.

0
RandyMorris