我正在尝试创建一个书店搜索字段,该字段匹配书籍标题,副标题和作者列中的关键字。我可以得到一个不区分大小写的语句来工作,但是当我在多列下尝试时它似乎不起作用。任何人都可以帮我找到错误吗?或者有更简单的方法来实现这一目标吗?
$getbooks= mysql_query("SELECT * FROM books WHERE (
LOWER(title) LIKE LOWER('%,".$_GET['search'].",%')
OR LOWER(author) LIKE LOWER('%,".$_GET['search'].",%')
OR LOWER(subtitle) LIKE LOWER('%,".$_GET['search'].",%')
)
AND status='1'
ORDER BY id DESC");
答案 0 :(得分:0)
您需要删除LIKE子句中的逗号:
例如,而不是: LIKE LOWER('%,".$_GET['search'].",%')
这样做:
LIKE LOWER('%".$_GET['search']."%')
否则,您只会匹配逗号包围的项目!
您还应该对表示SQL注入攻击漏洞的注释给予一些认真的信任。