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

在textarea字段中输入

php - 使用双引号和段落时,mysql输出显示“\r\n\r\n”和“\”。如何摆脱?-LMLPHP

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

在textarea字段中输出

php - 使用双引号和段落时,mysql输出显示“\r\n\r\n”和“\”。如何摆脱?-LMLPHP

下面是表单提交后我的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字段时,谁能解决这个问题?

最佳答案

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

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

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

10-08 11:57