由于撇号而添加斜线时查找行?

时间:2011-10-20 22:35:53

标签: php mysql

我正在尝试使用以下查询从MySQL表中提取信息:

$skill = mysql_real_escape_string($row['skill']);
$sql = "select * from table where column = '" . $skill . "'

然而,由于它添加了斜杠,因此无法找到它。在mysql_real_escape_string处理它之前,这是原始技能:Blah blah blah blah blah '

以下是通过mysql_real_escape_string后的内容:

Blah blah blah blah blah blah \'

我的SQL查询在它看起来时找不到它的特定行。有没有办法让MySQL继续寻找撇号?

谢谢!

2 个答案:

答案 0 :(得分:1)

  

然而,由于它添加了斜杠,因此无法找到它。

这是错误的假设。

由于其他原因,它无法找到它。

  

这是通过mysql_real_escape_string传递后的内容:   Blah blah blah blah blah blah \'

没关系,字符串应该是应该的。

  

我的SQL查询在它看起来时找不到特定的行。

您的代码或数据存在问题。提供完整且可重现的代码以及数据,以便我们能够帮助您找到错误。

答案 1 :(得分:-1)

使用此:

if (get_magic_quotes_gpc()) {
    $skill = stripslashes($row['skill']);
    $skill = mysql_real_escape_string($skill);
} else {
    $skill = mysql_real_escape_string($row['skill']);
}

$sql = 'select * from table where column = "' . $skill . '"';
编辑:对不起,我刚刚意识到$row['skill']可能不是来自GET / POST / COOKIE,因此get_magic_quotes_gpc()可能无关紧要。直接进入stripslashes()

 $skill = stripslashes($row['skill']);
 $skill = mysql_real_escape_string($skill);
 $skill = mysql_real_escape_string($row['skill']);