Codeigniter数据库前缀在表中添加

时间:2015-09-17 04:41:09

标签: mysql codeigniter

我有一个数据库,其中所有表名如下

configuration_dst,
developer_dst,
application_dst

现在我想管理我想要在表名之后而不是之前添加数据库前缀的查询。 例如:

{TABLE NAME}{PREFIX}

是否可以使用CI 3.0进行管理?

我在Application / configuration / database.php

中尝试过如下所示
$db['default']['dbprefix']="_dst";
$db['default']['swap_pre']="{POST}";

当前查询:

$this->db->get('templates');

当前表名称:

 tablename : _dsttemplates

预期的表名:

tablename : templates_dst

我需要在表名之前添加前缀,但没有得到任何解决方案。

2 个答案:

答案 0 :(得分:0)

手动使用数据库前缀

如果您使用

$this->db->set_dbprefix('newprefix');
$this->db->dbprefix('tablename'); // outputs newprefix_tablename

它始终将表名称为

newprefix_tablename
  

因为这是Codeigniter pastern。

Codeigniter Prefix

答案 1 :(得分:0)

唯一的选择是更改驱动程序文件。您可以使用以下步骤执行此操作:

  1. 转到/system/database/DB_query_builder.php
  2. 搜索public function dbprefix
  3. 替换

    return $this->dbprefix.$table;
    

    return $table.$this->dbprefix;
    
  4. 如果它还干扰了项目中的任何其他位置,则使用替换代码创建一个新函数,如:

    public function dbsuffix($table = '')
    {
        if ($table === '')
        {
            $this->display_error('db_table_name_required');
        }
    
        return $table.$this->dbprefix;
    }