我遇到了一个错误,但我自己似乎找不到错误。 也许你们中有人知道解决方案。
我的查询:
return $db->fetchAll("SELECT DISTINCT *,
MATCH(k.naam, k.plaats)
AGAINST('{$newQ}'
IN BOOLEAN MODE)
as score
FROM klant k
WHERE MATCH(k.naam, k.plaats)
AGAINST('{$newQ}' IN BOOLEAN MODE)
OR code = '{$q}'
AND bedrijf_id = '{$bedrijf}'
ORDER BY score DESC LIMIT " . intval($limit));
还有我的错误:
Message: SQLSTATE[42000]:
Syntax error or access violation: 1064 syntax error,
unexpected $end, expecting FTS_TERM or FTS_NUMB or '*',
query was: SELECT DISTINCT *, MATCH(k.naam, k.plaats) AGAINST('*' IN BOOLEAN MODE) as score FROM klant k WHERE MATCH(k.naam, k.plaats) AGAINST('*' IN BOOLEAN MODE) OR code = '' AND bedrijf_id = '1' ORDER BY score DESC LIMIT 3
查询对我来说完全没问题,有人可以指出我应该查看的位置吗?
最佳答案
我今天遇到了同样的问题。我发现原因是 MATCH() 参数的格式。因此,在您的情况下,导致错误的是您传递给 {$newQ} 的值。
要找出 MATCH() 的语法,请查看:
http://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html
关于php - SQL 语法错误 ZF1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968707/