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

时间:2018-06-26 06:27:49

标签: php mysql

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

在textarea字段中输入

enter image description here

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

在textarea字段中输出

enter image description here

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

1 个答案:

答案 0 :(得分:2)

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

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

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