Подскажите пожалуйста что не так в моем sql запросе? - PullRequest
1 голос
/ 28 декабря 2011

Я создаю приложение в codeigniter.Я создаю функцию поиска учебника из базы данных.Но я получаю ошибку.Пожалуйста, проверьте мой код.

    function get_tuts($query, $limit, $offset) {

    $offset = 0;
    $sql = "SELECT * FROM tutorials WHERE  MATCH ( title, desc ) AGAINST (?) LIMIT ? OFFSET ?"; 
    $q = $this->db->query($sql, array($query, $limit, $offset));

    if($q->num_rows() > 0){
                foreach($row->result() as $row){
                    $data[] = $row;
                }
            }
            return $data;
}

но я получаю эту ошибку

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 'desc ) AGAINST ('yahoo') LIMIT 10 OFFSET 0' at line 1

Ответы [ 3 ]

3 голосов
/ 28 декабря 2011

Слово desc является зарезервированным словом в mysql. Попробуйте заключить имя столбца в кавычки `.

2 голосов
/ 28 декабря 2011

desc - зарезервированное слово. Добавить `к desc:

$sql = "SELECT * FROM tutorials WHERE  MATCH ( title, `desc` ) AGAINST (?) LIMIT ? OFFSET ?"; 
1 голос
/ 28 декабря 2011

В полученном вами сообщении об ошибке говорится, что desc является зарезервированным ключевым словом в MySql.

use near 'desc ) AGAINST ('yahoo') LIMIT 10 OFFSET 0' at line 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...