mysql真正的转义字符串,LIKE没有取任何结果

时间:2011-10-25 07:14:20

标签: php mysql mysql-real-escape-string

我有一个mysql查询

mysql_query("SELECT name,symbol FROM scode WHERE change='$change' 
AND product='$product' AND series='$typeo' 
AND (name LIKE '%$check%' OR symbol LIKE '%$check%') LIMIT 5");

它完美地工作但是如果我尝试使用mysql字符串使用相同的查询,那么查询不会返回任何结果。 我试过这个

$query= sprintf("SELECT name,symbol FROM `scode` WHERE change='%s' 
AND product='%s' AND series='%s' AND (name LIKE '%s' OR symbol LIKE '%s') 
LIMIT 5",
mysql_real_escape_string($change),
mysql_real_escape_string($product),
mysql_real_escape_string($typeo),
mysql_real_escape_string($check),
mysql_real_escape_string($check));

$fetch= mysql_query($query);

如何进行有效的查询?有人可以帮帮我吗?感谢。

3 个答案:

答案 0 :(得分:5)

唔不行不通,因为在第一个你做了LIKE %term%,在第二个你做LIKE term。尝试添加%%,如下所示:

$query= sprintf("SELECT name,symbol FROM `scode` WHERE change='%s' AND product='%s' AND series='%s' AND (name LIKE '%%%s%%' OR symbol LIKE '%%%s%%') LIMIT 5",mysql_real_escape_string($change),mysql_real_escape_string($product),mysql_real_escape_string($typeo),mysql_real_escape_string($check),mysql_real_escape_string($check));

$fetch= mysql_query($query);

答案 1 :(得分:1)

将其添加到mysql_query的末尾,它将显示错误消息

  $fetch= mysql_query($query) or die(mysql_error());

答案 2 :(得分:0)

我检查了一下,发现了一个问题。看起来像mysql试图将“更改”列解析为关键字。试着把“改变”放在``。