2012-03-24 56 views
-1

我有一個鏈接:http://www.adress.com/Article.aspx?ID=262839&R=R1mysql_real_escape_string刪除和-char

使用它mysql_real_escape_string之後,它改變http://www.adress.com/Article.aspx?ID=262839

所以從& -char消除一切: 「& R = R1」。

爲什麼?我該如何解決這個問題?編號 感謝您的回答。我會着眼於PDO。

當然你是對的,問題不是由mysql_real_escape_string造成的。數據在我的jquery ajax請求中丟失。

$('.share').live('click', function(event) { 
     var thesharelink = $(this); 
     var thehref = $(this).attr('href'); 
     $(this).hide(); 
     $.ajax({ 
      url: 'edit.php', 
      type: 'POST', 
      data: 'thehref=' + thehref, 
      error: function(){ 
       $(thesharelink).replaceWith("Could not share"); 
      }, 
      contentType: 'application/x-www-form-urlencoded;charset=UTF-8', 
      success: function(result1) { 
       $('body').append(result1); 
       $(thesharelink).replaceWith(msg); 
      } 
     }); 
}); 

所以一旦數據到達到PHP文件,它會丟失。這似乎是添加逃生修復問題。儘管我歡迎任何有待改進的建議。

+0

你確定嗎?它爲我工作 – safarov 2012-03-24 18:02:47

+0

請提供一個重現錯誤的例子。 – Gumbo 2012-03-24 18:02:57

+1

您使用的是哪個版本的PHP?另外,你可以發佈一些實際的代碼?這不可能是'mysql_real_escape_string'造成的。 – pjumble 2012-03-24 18:03:00

回答

1

我建議你切換到PDO,並利用準備好的語句。用法示例(從PHP PDO prepared statements借用):

/* Execute a prepared statement by passing an array of values */ 
$sth = $dbh->prepare('SELECT name, colour, calories 
    FROM fruit 
    WHERE calories < ? AND colour = ?'); 

$sth->execute(array(150, 'red')); 

$red = $sth->fetchAll(); 
0

所以從& -char

這不是消除一切。

我該如何解決這個問題?

找到真正事業爲&字符刪除。