Точное сообщение об ошибке:
У вас есть ошибка в синтаксисе 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'");
Как определить, какой из них вызывает проблему? Или проблема в чем-то совсем другом?
Эхо:
"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. Там будут отображаться ошибки.
Как определить, какой из них вызывает проблему?
Удалите один из запросов. Смотрите, если это все еще происходит.
По второстепенным соображениям я бы предложил изменить код запроса MySQL так, чтобы он не использовал die(), чтобы распечатать сообщение об ошибке. Вместо этого используйте trigger_error или исключения, таким образом вы автоматически получите след, из которого он вызвал.
Я думаю, $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);
Как определить, какой из них вызывает проблему?
используйте trigger_error(), чтобы вывести сообщение об ошибке.
Я предполагаю (я должен угадать, потому что вы не поставляете код), что вы используете die() для вывода ошибки.
если вы измените эту функцию плохой практики на trigger_error(), вы сможете увидеть номер строки, где произошла ошибка.
Если вы добавите к нему не только mysql_error(), но и сам запрос, вы также сможете увидеть код проблемы.
rfflag
не используется где-то в другом запросе?