Php 如何在mysqli\u real\u escape\u string()之后保持换行符
我在一个简单的信息网站上工作。这个过程很简单,我输入带有换行符的文本,它将保存在数据库中并显示在另一个div中。在我使用Php 如何在mysqli\u real\u escape\u string()之后保持换行符,php,Php,我在一个简单的信息网站上工作。这个过程很简单,我输入带有换行符的文本,它将保存在数据库中并显示在另一个div中。在我使用mysqli\u real\u escape\u string()删除所有换行符并在一行中显示整个文本之前,一切都很好 $text = $_POST['new_text']; $vaild_text = mysqli_real_escape_string($con,trim($text)); $vaild_text = strip_tags($vaild_text);
mysqli\u real\u escape\u string()
删除所有换行符并在一行中显示整个文本之前,一切都很好
$text = $_POST['new_text'];
$vaild_text = mysqli_real_escape_string($con,trim($text));
$vaild_text = strip_tags($vaild_text);
$breaked_text = nl2br($vaild_text);
$command = "INSERT INTO textTable (text_col)VALUES ('$breaked_text')";
$query = mysqli_query($con,$command);
如果我删除mysqli\u real\u escape\u string()
所有内容
工作得很好,但出于安全考虑,我不能
我甚至改变了nl2br()
的位置,把它放在mysqli\u real\u escape\u string()之后和之前
但它不起作用 最安全的方法是使用:
使用准备好的报表有几个好处:
它通过转义参数来防止SQL注入
如果希望多次执行查询,则速度更快,因为查询只准备了一次
无需将值连接到查询中。当然,当不使用准备好的语句时,该函数可以作为连接字符串的替代方法。不过,我还是建议大家准备好陈述
您可以在下面的答案中找到更多关于准备好的陈述的好处和例子:
有关bind_param()
函数的更多信息,请参见。最安全的方法是使用:
使用准备好的报表有几个好处:
它通过转义参数来防止SQL注入
如果希望多次执行查询,则速度更快,因为查询只准备了一次
无需将值连接到查询中。当然,当不使用准备好的语句时,该函数可以作为连接字符串的替代方法。不过,我还是建议大家准备好陈述
您可以在下面的答案中找到更多关于准备好的陈述的好处和例子:
可以找到有关bind_param()
函数的更多信息。我刚刚找到了使用id nl2br()显示文本所需的解决方案
$data = mysqli_fetch_assoc($quert);
$text = $data['text_col'];
$text_break_line = nl2br($text);
echo "<p>'$text_break_line'</p>";
$data=mysqli\u fetch\u assoc($quert);
$text=$data['text_col'];
$text_break_line=nl2br($text);
回显“”$text\u break\u line””;
我刚刚找到了使用id nl2br()显示文本所需的全部解决方案
$data = mysqli_fetch_assoc($quert);
$text = $data['text_col'];
$text_break_line = nl2br($text);
echo "<p>'$text_break_line'</p>";
$data=mysqli\u fetch\u assoc($quert);
$text=$data['text_col'];
$text_break_line=nl2br($text);
回显“”$text\u break\u line””;
使用准备好的语句,您就不需要使用mysqli\u real\u escape\u string()
如果有错误,您会遇到什么错误?您在mysqlUse prepared语句中看到了什么结果,并且您不需要使用mysqli\u real\u escape\u string()
如果有错误,您会得到什么?你认为mysqlI的结果如何?我仍然建议出于安全目的使用准备好的语句(因为它更容易管理),我仍然建议出于安全目的使用准备好的语句(因为它更容易管理)