我的代码是这样的,数据库搜索问题PHP
$query = "SELECT * FROM `cars` WHERE (color LIKE '%". $key ."%' OR name LIKE '%". $key ."%') AND enabled = 'yes' ORDER BY `ID`";
数据库是这样
ID color name enabled
---- ------ -------- ---------
1 red red car yes
2 blue blue car yes
3 brown brown car yes
R当我用钥匙 “红”,它返回第一个字段搜索
(ID 1),但如果我搜索“红色汽车”它什么都不返回。
我该如何搜索2字段?
感谢
编辑:固定支架,但仍我不能得到超过1个字键的结果。
没有运气
$query = "SELECT * FROM `cars` WHERE (MATCH (color,name) AGAINST ('$key' IN BOOLEAN MODE)) AND enabled = 'yes' ORDER BY `ID`";
EDIT 2试过这样:彼得是正确的。查询中没有问题。奇怪的是 我用这个
$key = $_GET['key'];
如果$ _GET [“关键”]超过1个字,$关键是返回空的一个原因。
不用说,你应该小心SQL注入。 – Joe 2009-12-15 16:19:36
我不认为这是原因,但是你确实应该在你的WHERE标准中放置圆括号。您的AND和OR的解决顺序可能不是您所期望的。 – 2009-12-15 16:19:56