Ошибка PHP MYSQL - «У вас есть ошибка в синтаксисе SQL; проверьте… правильный синтаксис для использования рядом

0

Точное сообщение об ошибке:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около 'где rfflag =' 0 '' в строке 1

Привет,

Я пытаюсь заставить скрипты php работать, и он умирает с указанным выше сообщением об ошибке. Есть два местоположения, в которых rfflag используется в запросе SQL:

$_SESSION['lang']=$objTerm->my_get_one("select min(id) from "
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'");

$rs_lang=$objTerm->execute_query("select id,language from "
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'");

Как определить, какой из них вызывает проблему? Или проблема в чем-то совсем другом?

  • 0
    Вы на 100% уверены, что rfflag не используется где-то в другом запросе?
Теги:

4 ответа

2

Эхо:

"select id,language from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'"

и это:

"select min(id) from ".$objTerm->TABLE['languages']." where status='1' and rfflag='0'"

Затем запустите выполнение каждого вывода в своем любимом инструменте разработчика sql. Там будут отображаться ошибки.

1

Как определить, какой из них вызывает проблему?

Удалите один из запросов. Смотрите, если это все еще происходит.

По второстепенным соображениям я бы предложил изменить код запроса MySQL так, чтобы он не использовал die(), чтобы распечатать сообщение об ошибке. Вместо этого используйте trigger_error или исключения, таким образом вы автоматически получите след, из которого он вызвал.

0

Я думаю, $objTerm->TABLE['languages'] есть undefined или не имеет ожидаемого значения.

Как уже сказал sheeks06, просто эхо-запрос, чтобы увидеть, все ли как ожидается:

$query = "select min(id) from "
    .$objTerm->TABLE['languages']." where status='1' and rfflag='0'";
echo $query;
$_SESSION['lang']=$objTerm->my_get_one($query);

$query = "select id,language from "
    .$objTerm->TABLE['languages']." where `status`='1' and `rfflag`='0'";
echo $query;
$rs_lang=$objTerm->execute_query($query);
0

Как определить, какой из них вызывает проблему?

используйте trigger_error(), чтобы вывести сообщение об ошибке.
Я предполагаю (я должен угадать, потому что вы не поставляете код), что вы используете die() для вывода ошибки.
если вы измените эту функцию плохой практики на trigger_error(), вы сможете увидеть номер строки, где произошла ошибка.
Если вы добавите к нему не только mysql_error(), но и сам запрос, вы также сможете увидеть код проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню