Соединение запроса на две таблицы завершается с ошибкой с кодом 1064 - PullRequest
0 голосов
/ 13 февраля 2012

Я получаю количество строк в записи с ограничениями, используя

$table1="tab1";
        $table2="tab2";
$query=sprintf("SELECT '%s'.* FROM '%s' JOIN '%s' ON ('%s'.id='%s'.id)",
               $table1,
               $table1,
               $table2,
               $table1,
               $table2);
        $query=$this->db->query($query);
        return $query->num_rows();

, и у меня возникает следующая ошибка: я использую последний XAMPP с версией mysql 5.1

Номер ошибки: 1064

У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с '. * FROM' tab1 'JOIN' tab2 'ON (' tab1'.userid = 'tab2'.userid)' в строке 1

ВЫБРАТЬ 'tab1'. * ИЗ 'tab1' ПРИСОЕДИНИТЬСЯ 'tab2' ВКЛ ('tab1'.userid =' tab2'.userid)

Имя файла: A: \ CodeIgniter_2.1.0 \ system \ database \ DB_driver.php

Номер строки: 330

ОБНОВЛЕНИЕ

$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id) LIMTI `%d`, `%d`",
                   $table1,
                   $table1,
                   $table2,
                   $table1,
                   $table2,
                   $num1,
                   $num2);

ошибка

ОшибкаНомер: 1327

Необъявленная переменная: 5

SELECT tab1. * FROM tab1 JOIN tab2 ON (tab1 .userid = tab2 .userid) LIMIT 5, 0

Имя файла: A: \ CodeIgniter_2.1.0 \ system \ database \ DB_driver.php

Номер строки: 330

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Попробуйте этот код.

$table1="tab1";
        $table2="tab2";
$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id)",
               $table1,
               $table1,
               $table2,
               $table1,
               $table2);
        $query=$this->db->query($query);
        return $query->num_rows();

Я думаю, что ваш второй запрос должен быть таким.

$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id) LIMTI %d, %d",
                   $table1,
                   $table1,
                   $table2,
                   $table1,
                   $table2,
                   $num1,
                   $num2);
0 голосов
/ 13 февраля 2012

MySQL ожидает, что идентификаторы таблицы и столбца заключены в кавычки, а не в одинарные кавычки:

$query=sprintf("SELECT `%s`.* FROM `%s` JOIN `%s` ON (`%s`.id=`%s`.id)",
           $table1,
           $table1,
           $table2,
           $table1,
           $table2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...