MySQL / PHP синтаксическая ошибка - выглядит хорошо для меня - PullRequest
0 голосов
/ 26 марта 2011

Я выполняю полнотекстовый поисковый запрос в моем скрипте и у меня возникли проблемы. Поэтому я добавил быстрое «echo mysql_error», потому что получал ложные результаты, когда этого не должно было быть. Вот актуальный типизированный запрос:

(*Sending these args respectively: 'announc_threads', 'subject', 'replying'*)

public function searchFulltext ($table, $field, $against) {
     $query = "SELECT TID, authorUID, timeStarted, 
               WHERE MATCH (".$field.") AGAINST ('$against') AS score
               FROM ".$table."
               WHERE MATCH (".$field.") AGAINST ('$against')";

Вот ошибка, которую я получаю:

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 'WHERE MATCH (subject) AGAINST ('replying') AS score FROM announc_threads WHERE M' at line 1

Глядя на ошибку, все выглядит просто отлично. Самая большая проблема с запросами - это одинарные / двойные кавычки и использование переменных (всегда кажется, что они меняют то, что нужно), но даже те, которые выглядят хорошо, одинарные кавычки вокруг строк, без кавычек вокруг имен таблиц / полей видите что-то не так?

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 26 марта 2011

У вас есть where в списке полей в вашем предложении select.

Полагаю, вы намереваетесь выбрать партитуру и скопировать match...against материал из вашего предложения where и, следовательно, where, вероятно, является ошибкой копирования-вставки, и должен быть удаленным:

$query = "SELECT TID, authorUID, timeStarted, 
           MATCH (".$field.") AGAINST ('$against') AS score
           FROM ".$table."
           WHERE MATCH (".$field.") AGAINST ('$against')";

(where, который я удалил, был в начале второй строки этой части кода)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...