请告诉我我的SQL查询有什么问题?

时间:2011-12-28 18:23:30

标签: mysql sql codeigniter

我在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 个答案:

答案 0 :(得分:3)

单词desc是mysql中的保留字。尝试用反引号`。

包围列名

答案 1 :(得分:2)

desc是保留字。添加`to desc:

$sql = "SELECT * FROM tutorials WHERE  MATCH ( title, `desc` ) AGAINST (?) LIMIT ? OFFSET ?"; 

答案 2 :(得分:1)

您收到的错误消息显示desc是MySql中的保留关键字。

use near 'desc ) AGAINST ('yahoo') LIMIT 10 OFFSET 0' at line 1