我已经使用mysql_real_escape_string在数据库中输入信息,但是当我在查询中返回信息时,文本中会显示\\\'。我这样做是为了使插入查询在保存为以前时不再在'中停止。如果文章中包含撇号,它通常会在中途停止保存该文章的标题。该问题已得到解决,但现在我得到\\\'出现撇号的地方。

示例:Microsoft\\\'s $15 Windows 8 upgrade offer to run from June 2nd to January 31st, will include free workshops

我从数据库返回列表的查询代码如下:(请注意,这是摘录,因此不包含此循环的结束)

<?php

    $q2 = "SELECT * FROM ReadLater WHERE Folder_ID = 0 AND User_ID = $loggedInUser->user_id ORDER BY dt_added DESC";
    $r2 = mysql_query($q2);

    echo "<div id='folderstitleright'>Unread</div>";

    if(mysql_num_rows($r2)>0)
        {
        echo "<ul id='foldersarticlelist'>";
        $sr2=1;
        while($row = mysql_fetch_assoc($r2))

            {

            echo "
               <li class='box'>


等等

知道如何阻止这种情况吗?我已经测试了魔术引号是否已启用,但是对于Web主机,我无法打开它们(我发现,可能有一种非常复杂的方法,但我还没有找到),并且他们还说他们忽略了.htaccess文件中的php标志。

我试图做一个\\\' to '的preg_replace,但是到目前为止还没有成功,根据我的尝试,它完全破坏了查询,但是我很可能执行错误或者将其放置在上面的代码中错误的位置。

最佳答案

请勿与此同时使用preg_replace,而只需使用str_replace

$text = str_replace("\\\\\\", "'", $text);
// Use 6 slashes as '\\' is really '\' because '\-' is an escape sequence.

关于php - PHP MYSQL结果中的三斜杠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10788847/

10-12 15:16
查看更多