【发布时间】:2017-08-21 09:55:32
【问题描述】:
我在 PHP 中有一个搜索页面,它使用以下查询从数据库中获取内容。
SELECT * FROM linkBase WHERE (`title` LIKE '%".$s."%') OR (`descr` LIKE '%".$s."%')
这是我的数据库的样子:
id |title |descr
-----------------------------------------
1 |Hello World |This is a hello world description
2 |PiedPiper |The silicon valley company PiedPiper
3 |StackOverflow |Ask questions on programming
现在,例如,如果我使用 $s = "silicon valley" 的值运行此查询,那么它会获取 row 2。这可以。但是如果用户输入搜索词为silicon PiedPiper 会怎样。上面的 SQL 查询不返回任何结果。如何修改查询,使其也将返回 row 2 和第二个搜索词。
问题总结: 我如何使用 PHP 和 SQL 进行搜索查询,即使用户输入两个在数据库中没有相互关联的单词也会返回结果
【问题讨论】:
-
MySQL和SQL Server是不同公司生产的不同软件包。即使两者都实现了 SQL,它们也以不同的方式扩展它,有时它们使用不同的语法约定,从而使查询在它们之间不兼容。请仅使用与您正在使用的软件匹配的标签。
-
用
%替换空格登录$s... -
注意这段代码的sql注入。尝试改用参数化查询。