Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql在数据库的文本区域中存储换行符_Php_Mysql_Database_Format - Fatal编程技术网

php mysql在数据库的文本区域中存储换行符

php mysql在数据库的文本区域中存储换行符,php,mysql,database,format,Php,Mysql,Database,Format,我有一个输入文本区域,我想在数据库的文本区域中存储用户所做的换行符,以便它以与输入文本相同的方式回显输出文本 例如: 这是我当前的上载脚本: $sql = "insert into people (price, contact, category, username, fname, lname, expire, filename) values (:price, :contact, :category, :user_id, :fname, :lname, now() + INTERVAL 1 M

我有一个输入文本区域,我想在数据库的文本区域中存储用户所做的换行符,以便它以与输入文本相同的方式回显输出文本

例如:

这是我当前的上载脚本:

$sql = "insert into people (price, contact, category, username, fname, lname, expire, filename) values (:price, :contact, :category, :user_id, :fname, :lname, now() + INTERVAL 1 MONTH, :imagename)";
$q = $conn->prepare($sql) or die("failed!");
$q->bindParam(':price', $price, PDO::PARAM_STR);
$q->bindParam(':contact', $contact, PDO::PARAM_STR);
$q->bindParam(':category', $category, PDO::PARAM_STR);
$q->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$q->bindParam(':fname', $fname, PDO::PARAM_STR);
$q->bindParam(':lname', $lname, PDO::PARAM_STR);
$q->bindParam(':imagename', $imagename, PDO::PARAM_STR);
$q->execute();

文本区域中的换行符是换行符,例如
\n
。它们不是以HTML呈现的,因此,如果您只是回显输出,它们就不会显示。您可以在
标记内部进行回音,也可以使用将新行替换为

标记,以便将其显示为HTML。

您可以在存储之前使用
mysql\u real\u escape\u string

str.replace("\n", "<br />","g");

此处的文档:

您还可以使用javascript通过使用replace将文本分解为
\n到

$query = "UPDATE your_table 
         SET your_text_field = 'line 1'" . '\n' . "'line2' 
         WHERE your_id_field = " . $id . "';";
str.replace(“\n”、“br/>”、“g”);

我也遇到了同样的问题,现在可以正常工作了:


根据Micah的评论,尝试在输出中添加
nl2br
,即
nl2br($imagename)。感谢您的回复,如果是lname输出,我想保留换行符,我将如何做,我将放在哪里感谢您的回复,我不确定我将把nl2br()放在哪里,我想保留换行符的是PHP中显示输出的“lname”文本。也就是说,换行符存储在数据库中,但在显示为HTML之前,需要对该数据的显示进行分析<代码>回声nl2br($data)谢谢,我试过了,但它字面上说是nl2br(一些文本);当我回响“cho”时。nl2br($lname)。“联系人:
”$行['contact']。"";抱歉,请删除
nl2br($lname)
-1后面的分号。最好避免使用JS解决方案,这样禁用/无法使用JS的用户仍然可以正确渲染字符串。
$query = "UPDATE your_table 
         SET your_text_field = 'line 1'" . '\n' . "'line2' 
         WHERE your_id_field = " . $id . "';";