我想将类似的字符串插入db,但是插入字符" n"消失后,在db中,我将其视为新行。
我发送的字符串:
[{"Index":0,"Title":"headline","Content":"first linensecond line","Class":"colour1"}]
要插入到DB,我使用此PHP代码和字符串,我通过HTML表单发送方法。
。if ( $action == "save") {
$notes = $_POST['notes'];
$sql = "INSERT INTO notes (notes) VALUES ('$notes')";
if (mysqli_query($conn, $sql)) {
$saved = "Saved...";
} else {
$saved = "Error: " . mysqli_error($conn);
}
}
当我打印变量" $ _post ['notes']"或" $ notes"之前,在通过表单发送之前,字符串还可以,在发送表单后和插入db之前,字符串也可以。
在获取数据库时,请使用NL2BR()
由于在mySQL中解释' n'为'\ n'而出现的问题。为避免这种转换,请尝试这种方法:在将查询字符串插入到数据库之前,请如下:
$notes = $_POST['notes'];
//This line will replace 'n' with HTML Coded Character Set, but will be interpreted in HTML as n itself.
$notes = str_replace('n', '\n', $notes);
$sql = "INSERT INTO notes (notes) VALUES ('$notes')";
" n"是下一行语句,MySQL将其视为下一行是正确的。必须使用nl2br($ value)将其显示为HTML网页中的下一行。
您在插入数据时应该使用textarea,并且当您想显示/回声时,数据使用此php函数来保留线路断开echo echo nl2br($ string);
>例如
<textarea class="form-control" name="short_desc" required></textarea>
,用于前端回波使用以下函数
<?PHP echo nl2br($short_desc);?>
它将保留线路断路并显示出正面上断路的内容,
还保留MySQL数据类型文本。