php - 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 字段?
解决方案
将此代码替换$remarks = mysqli_real_escape_string($conn, $_POST["remarks"]);
为$remarks = $_POST["remarks"];
. 如果您使用准备好的语句,则不需要转义输入。
输出时转义 html:
<?php echo htmlspecialchars($row['REMARKS']);?>
。
这应该可以解决问题。请注意,后一种转义将不支持文本中的 HTML 标记。
推荐阅读
- javascript - 脚本标签无法加载资源状态 404
- react-native - Visual Studio 代码错误中的 React-Native 代码
- android - Android中的共享首选项和内部存储有什么区别?数据存储在哪里?
- php - 两个表的内连接 [更新]
- node.js - Mongodb连接数组内的元素
- c# - 是否可以使用自定义属性来强制执行方法签名
- android - 使用 Intent 将整个回收站视图传递给另一个活动的最佳方法是什么?
- postgresql - 在 2 列上查询日期/时间
- java - 未能执行目标 org.codehaus.mojo:findbugs-maven-plugin:3.0.3
- c++ - Objective-C源代码和clang -rewrite-objc C++代码之后的关系是什么?