mysql搜索%和$字符没有结果

时间:2013-01-06 05:46:38

标签: php mysql search

 $word ="50%";
 $searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' ";

当我执行此查询时,它不返回任何结果。 我假设问题是%符号,它是mysql中的外卡。 什么是搜索该$ word的正确方法

3 个答案:

答案 0 :(得分:3)

尝试这样的事情,

 $word ="50%";
 $searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' escape '%'";

作为旁注,如果值( s )来自外部,则查询容易被SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

答案 1 :(得分:2)

您尝试搜索%?如果没有,请将keyword = '%$word%'更改为keyword LIKE '%$word%'。 如果您这样做,请使用%

转义LIKE '50\%' ESCAPE '\'":
$word ="50\\%";
$searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' ESCAPE '\' ";

答案 2 :(得分:1)

在MySQL中执行查询时,必须在特殊字符之前添加前导斜杠。像这样:

$word = "50\\%";