我已经建立了一个html表单,并且正在使用PHP将数据插入到我的phpmyadmin数据库中。每次我在文本区域中输入文本数据时,如下所示:
在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字段时,谁能解决这个问题?
最佳答案
将此代码$remarks = mysqli_real_escape_string($conn, $_POST["remarks"]);
替换为$remarks = $_POST["remarks"];
。如果使用准备好的语句,则无需转义输入。
输出转义html时:<?php echo htmlspecialchars($row['REMARKS']);?>
。
这应该可以解决问题。
请注意,后者的转义将不支持文本中的HTML标记。