Php 如何在mysqli\u real\u escape\u string()之后保持换行符

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);

我在一个简单的信息网站上工作。这个过程很简单,我输入带有换行符的文本,它将保存在数据库中并显示在另一个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);  

$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的结果如何?我仍然建议出于安全目的使用准备好的语句(因为它更容易管理),我仍然建议出于安全目的使用准备好的语句(因为它更容易管理)