0

我有 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');
4

2 回答 2

6

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

$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');

文档在这里

于 2013-04-15T18:51:20.170 回答
1

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

于 2017-07-26T20:37:10.743 回答