使用像mysql数据库中的撇号无法比较值?

时间:2013-08-21 18:09:36

标签: php mysql database

使用 $ quer1 可以节省价值“收藏夹的电视节目?”作为“最喜欢的电视节目?”  当我进入主机的PHPMYADMIN并写了一个SQL 查询 -

 SELECT ques_id FROM questions WHERE ques like 'Favorite\'s TV shows?'

它返回0行但是“收藏”的电视节目?在数据库中

$ query2 返回错误,因为它无法获取任何行,但在数据库中值exsist !!

$qques="q".$ques;
$query1 =sprintf("insert into questions(ques) values ('%s')",
mysql_real_escape_string($val));

$result = mysql_query($query1);
if (!$result) {
$message  = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query1;
die($message);
}

$query2 =sprintf("SELECT ques_id FROM questions WHERE ques like '%s'",
mysql_real_escape_string($val));
$result2 = mysql_query($query2);
if (!$result2) {
$message  = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query2;
die($message);
}else
{   $valueSecond= mysql_result($result2, 0);}

1 个答案:

答案 0 :(得分:-1)

不要用反斜杠转义撇号,而是用双撇号试试,如下:

select * from ABC where XYZ like 'Favorite''s TV shows?'

如果数据库中存在转义的撇号,则需要执行此操作:

select * from ABC where XYZ like 'Favorite\\''s TV shows?'