0

我在将源代码存储到一个小型脚本箱的数据库中时遇到问题。问题是用于从数据库查看的语法荧光笔中的打印代码在不应该的地方有换行符,我也在数据库中看到文本以相同的方式存储。

我尝试过使用几个方法来完成这项工作,起初我认为这是一个换行问题,所以我在输入表单上设置了换行。然后添加了 addlashes 并且没有用,我尝试了 magic_quotes,在下面显示的这种情况下,我尝试了 mysql_real_escape_string 并且来自 $content 的文本将存储在数据库中,并且在它们不应该的地方有换行符。

我错过了什么吗?谢谢

下面的代码是插入到 db 中,相关的值是 $content

<?php
session_start();
$submit = $_POST['submit'];
$sniptitle = ($_POST['sniptitle']);


$date = date("Y-m-d H:i:s"); 
$user = $_SESSION['username'];
$lang = ($_POST['lang']);
$con=mysqli_connect("localhost","xxxx","xxxx","xxxx");


$content = mysql_real_escape_string($_POST['snipcontent']);
// ^^^HERE IS THE ISSUE ^^^                           



    if(isset($_POST['submit'])) { 


                                    // Check connection
                                if (mysqli_connect_errno()) 
                                  {
                                  echo "Failed to connect to MySQL: " . mysqli_connect_error();
                                  }





                                mysqli_query($con,"INSERT INTO code_lib ( snip_title , snip_content , posted_by , lang , datetime )
                                VALUES ('$sniptitle' , '$content' , '$user' , '$lang' , '$date' )");


                                mysqli_close($con);

                                header ("Location: xxx"); // Move back to a page
                                exit();
                                }


    ?> 
4

1 回答 1

0
  1. mysql_real_escape_string 无论如何都不应该与 mysqli 一起使用
  2. 尽管如此,这也不应该是一个问题
  3. 您的“解决方案”很可能与 fetch 上的带斜杠配对
  4. 所以,正确的解决方案是
    • 关闭魔术引号
    • 并使用 mysqli_real_escape_string
于 2013-03-16T06:56:10.950 回答