添加表前缀以加入Codeigniter

时间:2013-04-15 17:38:12

标签: php codeigniter

我有Codeigniter设置,将前缀kms_添加到我的活动记录查询中。但是,我正在尝试使用两个ON条件进行连接,并且它不会预先添加它们。

现在我必须像这样手动添加它们:

$this->db->join('site_items', 'kms_site_items.item_id = kms_items.id AND kms_site_items.site_id = 1', 'left');

我能不能这样写,以便正确添加表格前缀?

有没有办法让这样的东西起作用:

$this->db->join('site_items', 'site_items.item_id = items.id AND site_items.site_id = 1', 'left');

2 个答案:

答案 0 :(得分:4)

您可以手动获取当前数据库前缀:

$prefixed_tablename = $this->db->dbprefix('tablename');

所以你可以这样做:

$this->db->join('site_items', $this->db->dbprefix('site_items') . '.item_id = ' . $this->db->dbprefix('items') . '.id AND ' . $this->db->dbprefix('site_items') . '.site_id = 1', 'left');

Docs Here

答案 1 :(得分:1)

您可以像这样简单地添加Prefix表名:
例如,您的表格有myPrefix_作为前缀,其中一个可能是myprefix_user 在此页面底部的config/database.php中设置database nameusernamepassword后,您可以看到dbprefix,然后您可以设置我在上面提到的前缀myPrefix_ 最后,您可以简单地调用您的表名称,例如$this->db->get('user'),并自动Codeigniter在第一个位置设置您的前缀。