我有一个链接:http://www.adress.com/Article.aspx?ID=262839&R=R1
在其上使用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 :(得分: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();
答案 1 :(得分:0)
所以它删除了&amp; -char
中的所有内容
不是。
我该如何解决这个问题?
找到&amp;的真实原因角色去除。