首页 > 解决方案 > mysql 输出在使用双引号和分段时显示“\r\n\r\n”和“\”。如何摆脱?

问题描述

我已经构建了一个 html 表单,并且正在使用 PHP 将数据插入到我的 phpmyadmin 数据库中。每次我在 textarea 中输入文本数据时,如下所示:

在 textarea 字段中输入

在此处输入图像描述

当我使用 mysql 从数据库中检索数据时,输出显示如下。

在 textarea 字段中输出

在此处输入图像描述

以下是表单提交后我的mysql插入代码:

<?php
> if(isset($_POST['submit']))       {
> 
> $remarks = mysqli_real_escape_string($conn, $_POST["remarks"]);
> 
> $stmtinsert = $conn->prepare("INSERT INTO
> patient_continuation(REMARKS) 
>            VALUES (?);");
> 
>           mysqli_stmt_bind_param($stmtinsert, "s", $remarks); 
>           mysqli_stmt_execute($stmtinsert); 
> 
> }
?>

下面是数据检索代码:

<?php
$stmtquery = $conn->prepare("SELECT * FROM patient_continuation WHERE ID =?;");
mysqli_stmt_bind_param($stmtquery, "s", $con_id);
mysqli_stmt_execute($stmtquery);
$result = $stmtquery->get_result();
$row = $result->fetch_assoc();

?>

<label><b>Continuation Sheet </b></label>
<textarea class="form-control" tabindex="3" name="remarks" id="remarks" rows="12"><?php echo $row['REMARKS'];?></textarea>

任何人都可以帮助解决这个问题,因为我的表单使用了许多 textarea 字段?

标签: phpmysql

解决方案


将此代码替换$remarks = mysqli_real_escape_string($conn, $_POST["remarks"]);$remarks = $_POST["remarks"];. 如果您使用准备好的语句,则不需要转义输入。

输出时转义 html: <?php echo htmlspecialchars($row['REMARKS']);?>

这应该可以解决问题。请注意,后一种转义将不支持文本中的 HTML 标记。


推荐阅读