Синтаксическая ошибка в программно сгенерированном запросе

0

Im сталкивается с ошибкой mysqli_fetch_array() и сообщает следующее

Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "1" в строке 1

im подготовка процесса разбиения на страницы, где мой код выглядит следующим образом.

$_SESSION['sub']=$sub; // this holds the name of database which is working fine
$ques_per_page=1; // LIMIT 
$page_result = ($page-1)*$ques_per_page; //determines the SQL LIMIT starting number for the result on displaying page
$sql="SELECT question, ans1, ans2, ans3, ans4 FROM " .$sub. "LIMIT". $page_result .','. $ques_per_page ; // it is where error is 

Не знаю, что происходит

  • 1
    Распечатайте окончательную строку $sql и посмотрите на это. Также, пожалуйста, сделайте названия вопросов здесь более описательными (технические подробности, а не личные проблемы) и поместите полную выдержку из кода в блок кода.
  • 1
    У вас нет пробелов вокруг слова LIMIT . ...FROM tableNameLIMIT1,... запрос будет выглядеть примерно так ...FROM tableNameLIMIT1,...
Показать ещё 5 комментариев
Теги:
pagination

2 ответа

1

Мне кажется, что вам не хватает места до и после ключевого слова LIMIT.

Но это помогло бы, если бы вы могли вставить полную расширенную строку после замены переменных PHP.

Боковое замечание: обычно считается неправильной практикой, чтобы связать строку, используя . оператор конкатенации вместо простого использования переменной интерполяции, как в:

$sql = "SELECT question, ans1, ans2 from ${sub} LIMIT ${page_result}, ${ques_per_page}";

из вашего примера.

  • 2
    обычно считается плохой практикой цепочка строк с использованием. оператор конкатенации - вы хотели бы процитировать какой-то источник для этого ?!
  • 0
    @NigelRen: проверьте @bjacquemont в Твиттере, в частности его конференцию о кодах операций и Оптимизаторе Zend.
Показать ещё 6 комментариев
0

он работал, я написал запрос вроде этого $sql="SELECT * FROM $sub LIMIT $page_result, $ques_per_page" ; вместо $sql="SELECT question, ans1, ans2, ans3, ans4 FROM ".$sub. "LIMIT". $page_result.','. $ques_per_page ; $sql="SELECT question, ans1, ans2, ans3, ans4 FROM ".$sub. "LIMIT". $page_result.','. $ques_per_page ; спасибо всем за ответы.....

Ещё вопросы

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