使用codeigniter活动记录连接表

时间:2015-04-19 11:56:58

标签: codeigniter

我正在尝试将我的代码从查询更新为codeigniter活动记录。

这是我的旧代码

public function get_categories($parent_id = 0) {

    $language_id = "1";

    $query = $this->db->query("SELECT * FROM " . $this->db->dbprefix . "category c LEFT JOIN " . $this->db->dbprefix . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . $this->db->dbprefix . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$language_id . "' AND c2s.store_id = '" . (int)$language_id . "'  AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)");

    return $query->result_array();
}

我正在尝试将其更新为下面的新代码

我遇到的问题是它没有通过id获得正确的结果。而且由于升级到CI-3旧代码不起作用。

public function get_categories($parent_id = 0) {
    $this->db->select('*');
    $this->db->from('category');
    $this->db->join('category_description', 'category_description.category_id = category.category_id', 'left');
    $query = $this->db->get();

    if ($query->num_rows() > 0) {
        return $query->result_array();
    } else {
        return false;
    }
 } 

如何正确使用codeigniter连接。能够使我的代码工作。

1 个答案:

答案 0 :(得分:4)

升级到Codeigniter 3.0后,您需要更新数据库配置文件:

删除:$active_record = TRUE;

添加:$query_builder = TRUE;

实际上还有更多要考虑更新的内容,您可以在此处找到完整的文档:

http://www.codeigniter.com/user_guide/changelog.html

http://www.codeigniter.com/user_guide/installation/upgrade_300.html