選擇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