选择MySQL的我得到这个错误:故障与PHP
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and idcat = 00 OR idcat = 11 OR idcat = 4 OR idcat = 8 OR idcat = 10 OR idcat ' at line 6
我试图做PHP
SELECT *,
MATCH (name,description) AGAINST ('key') AS relevancia
FROM offer
WHERE
MATCH (name,description)
and idcat = 00
OR idcat = 11
OR idcat = 4
OR idcat = 8
OR idcat = 10
OR idcat = 5
OR idcat = 7
OR idcat = 1
OR idcat = 2
OR idcat = 3
OR idcat = 6
OR idcat = 9
AGAINST ('key')
ORDER BY discount DESC
LIMIT 0, 15
此查询但是,如果我尝试做这个查询直接在phpmyadmin的,它工作正常。所以我不知道为什么PHP不起作用,如果它是相同的咨询。
顺便请原谅我可怜的英语。
编辑:
这是PHP会诊
$sql2 = "SELECT *,
MATCH (name,description)
AGAINST ('$search')
AS relevancia
FROM offer
WHERE MATCH (name,description) AGAINST ('$search')
and $wheres $order $limit";
echo $sql2;
mysql_query("".$sql2."") or die (mysql_error());
在PHP-MySQL在$ SQL2
SELECT *, MATCH (name,description) AGAINST ('key') AS relevancia
FROM offer
WHERE MATCH (name,description) AGAINST ('key')
and idcat IN(00, 11, 4, 8, 10, 5, 7, 1, 2, 3, 6, 9)
ORDER BY discount DESC LIMIT 0, 3
错误的PHP结果
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to
use near
'idcat IN(00, 11, 4, 8, 10, 5, 7, 1, 2, 3, 6, 9) ORDER BY discount DESC' at line 5
如果您认为'idcat'是一个字符串类型,就像'='00''那样,那么不等式('> 0'和'<= 11')将基于字典顺序并可能产生不合需要结果(例如''10asgf'')。 – eggyal