Könnte mir jemand sagen, wie ich eine neue Zeile in einen Text einfügen soll, den ich in eine MySql-Tabelle eingebe?
Ich habe versucht, das '\n'
in der Zeile zu verwenden, die ich mit INSERT INTO
Anweisung eingegeben habe , aber es '\n'
wird so angezeigt, wie es ist.
Eigentlich habe ich in MS Access eine Tabelle mit einigen Daten erstellt. MS Access fügt eine neue Zeile mit hinzu '\n'
. Ich konvertiere MS Access-Tabellendaten in MySql. Beim Konvertieren wird das '\n'
jedoch ignoriert und der gesamte Text wird in einer einzigen Zeile angezeigt, wenn ich ihn aus der MySql-Tabelle in einem PHP-Formular anzeige.
Kann mir jemand sagen, wie MySQL eine neue Zeile in einen Text einfügen kann? Warten auf Antwort, danke !!
mysql
newline
insert-into
Muhammed Umer
quelle
quelle
Antworten:
Wenn Sie mit einem SQL-Befehl einverstanden sind , der sich über mehrere Zeilen erstreckt, ist der Vorschlag von oedo der einfachste:
INSERT INTO mytable (myfield) VALUES ('hi this is some text and this is a linefeed. and another');
Ich hatte gerade eine Situation, in der es vorzuziehen war, die SQL-Anweisung in einer Zeile zu haben, also fand ich, dass eine Kombination aus
CONCAT_WS()
undCHAR()
für mich funktioniert.INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
quelle
CARRIAGE RETURN
undLINE FEED
durch Verwendung nichtCHAR(13)
undCHAR(10)
normalerweise aus Kompatibilitätsgründen empfohlen?CR
ist äquivalent zu\r
undLF
ist äquivalent zu\n
In einer tatsächlichen SQL-Abfrage fügen Sie einfach eine neue Zeile hinzu
INSERT INTO table (text) VALUES ('hi this is some text and this is a linefeed. and another');
quelle
Für die Aufzeichnung wollte ich einige Zeilenumbrüche in vorhandene Daten einfügen und ich musste
\n
in Ordnung arbeiten ...Beispieldaten:
Ich tat:
UPDATE table SET field = REPLACE(field, '. ', '.\r\n')
Es funktionierte aber auch mit gerecht
\r
und gerecht\n
.quelle
\n
nur verwendet werden sollte. So gehen die meisten dieser Systeme damit um. ZB Git. Optional können Sie ersetzen\n
mit\r\n
auf einem Windows - System beim Lesen, aber meistens werden Sie es nicht einmal erforderlich finden. Die meisten Windows-Komponenten funktionieren nur mit\n
. Notepad ist eine bemerkenswerte Ausnahme.UPDATE table SET field = REPLACE(field, '\\r', '\r');
UPDATE table SET field = REPLACE(field, '\\n', '\n');
INSERT INTO test VALUES('a line\nanother line');
\n
funktioniert hier einfach gutquelle
MySQL kann in den meisten Fällen Zeilenumbrüche problemlos aufzeichnen. Das Problem ist jedoch, dass Sie
<br />
Tags in der tatsächlichen Zeichenfolge benötigen, damit Ihr Browser die Unterbrechungen anzeigt. Da Sie PHP erwähnt haben, können Sie mit diesernl2br()
Funktion ein Zeilenumbruchzeichen ("\n
") in HTML konvertieren<br />
Tag .Verwenden Sie es einfach so:
Ausgabe ( in HTML ):
Hier ist ein Link zum Handbuch: http://php.net/manual/en/function.nl2br.php
quelle
<br>
ist tatsächlich<br />
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
quelle
Wenn Sie möchten, dass es in einem PHP-Formular angezeigt wird, ist das Medium zunächst HTML, sodass eine neue Zeile mit dem
<br />
Tag gerendert wird . Überprüfen Sie den Quell-HTML-Code der Seite. Möglicherweise wird die neue Zeile nur als Zeilenumbruch gerendert. In diesem Fall besteht Ihr Problem lediglich darin, den Text für die Ausgabe in einen Webbrowser zu übersetzen.quelle
In SQL oder MySQL können Sie die Funktionen
char
oderchr
verwenden, um einen ASCII 13 für den\n
Zeilenvorschub für den Wagenrücklauf einzugeben. Aber wie @David M angegeben hat, möchten Sie höchstwahrscheinlich, dass der HTML-Code diese Unterbrechung anzeigt, und ein br wird funktionieren.quelle
\r
? Gedanke\n
war ASCII 10.Sie müssen ersetzen
\n
mit<br/>
vor Einsatz in der Datenbank.$data = str_replace("\n", "<br/>", $data);
In diesem Fall sehen Sie in der Datenbanktabelle
<br/>
anstelle einer neuen Zeile.z.B
First Line
Second Line
wird aussehen wie:
First Line<br/>Second Line
Eine andere Möglichkeit, Daten mit einer neuen Zeile anzuzeigen. Lesen Sie zuerst die Daten aus der Datenbank. Und dann ersetzen
\n
durch<br/>
zB:echo $data;
$data = str_replace("\n", "<br/>", $data);
echo "<br/><br/>" . $data;
Ausgabe:
First Line Second Line
First Line
Second Line
Details zur Funktion str_replace () finden Sie hier: http://php.net/manual/en/function.str-replace.php
quelle
<
,>
und&
in ihrem Text ... entfliehen es? Wenn ja, wie können Sie vermeiden, dass<br/>
Sie dem eingefügten entkommen ? Sie erstellen ein Problem, das nicht gelöst werden kann.Sie können einfach alle
\n
durch ein<br/>
Tag ersetzen, sodass beim Anzeigen der Seite die Linie unterbrochen wird.UPDATE table SET field = REPLACE(field, '\n', '<br/>')
quelle