$word ="50%";
$searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' ";
当我执行此查询时,它不返回任何结果。我认为问题是 % 符号,它是 mysql 中的通配符。搜索该 $word 的正确方法是什么
尝试这样的事情,
$word ="50%";
$searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' escape '%'";
作为旁注,SQL Injection
如果值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号。
您尝试搜索%
? 如果没有,请更改keyword = '%$word%'
为keyword LIKE '%$word%'
. 如果这样做,请%
使用以下命令转义:LIKE '50\%' ESCAPE '\'":
$word ="50\\%";
$searchSQL = "SELECT * FROM discounts WHERE keyword LIKE '%$word%' ESCAPE '\' ";
在 MySQL 中进行查询时,您必须在特殊字符之前添加前导斜杠。所以像这样:
$word = "50\\%";