我有一个数据库,其中所有表名如下
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
我需要在表名之前添加前缀,但没有得到任何解决方案。
答案 0 :(得分:0)
如果您使用
$this->db->set_dbprefix('newprefix');
$this->db->dbprefix('tablename'); // outputs newprefix_tablename
它始终将表名称为
newprefix_tablename
因为这是Codeigniter pastern。
答案 1 :(得分:0)
唯一的选择是更改驱动程序文件。您可以使用以下步骤执行此操作:
/system/database/DB_query_builder.php
public function dbprefix
替换
return $this->dbprefix.$table;
与
return $table.$this->dbprefix;
如果它还干扰了项目中的任何其他位置,则使用替换代码创建一个新函数,如:
public function dbsuffix($table = '')
{
if ($table === '')
{
$this->display_error('db_table_name_required');
}
return $table.$this->dbprefix;
}