$word ="50%";
$searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' ";
当我执行此查询时,它不返回任何结果。 我假设问题是%符号,它是mysql中的外卡。 什么是搜索该$ word的正确方法
答案 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\\%";