在config/database.php中将前缀添加到表中,但有一些例外
我决定将两个相关WBSIT在config/database.php中将前缀添加到表中,但有一些例外,php,mysql,database,codeigniter,codeigniter-2,Php,Mysql,Database,Codeigniter,Codeigniter 2,我决定将两个相关WBSITA,B的表合并到一个数据库中,这样它们就可以共享一些表 我已经在网站的表中添加了前缀B\uu,这样我就可以将它们与表A区分开来,避免名称相似的表之间发生冲突 所以我现在有两个选择: 1-更改网站B源代码中的每个表名,并向其添加B\前缀。。。这需要很长时间 2-在config/database.php中使用前缀选项。。。我要用它 但问题是: 两个网站共有3个表,它们没有任何前缀 1 - users 2 - tractions 3 - sessions 所以我要做的是
A,B
的表合并到一个数据库中,这样它们就可以共享一些表
我已经在网站的表中添加了前缀B\uu
,这样我就可以将它们与表A区分开来,避免名称相似的表之间发生冲突
所以我现在有两个选择:
1-更改网站B
源代码中的每个表名,并向其添加B\
前缀。。。这需要很长时间
2-在config/database.php中使用前缀选项。。。我要用它
但问题是:
两个网站共有3个表,它们没有任何前缀
1 - users
2 - tractions
3 - sessions
所以我要做的是为这3个表在前缀中进行execption
基本上在我想要的网站B的config/database.php中
$db['default'] = array(
'dbprefix' => 'B_',
);
但我想对3个表进行一些验证,如:
$exception = array('users' , 'tractions' , 'sessions' );
if(in_array($table_name , $exception )
$db['default']['dbprefix'] = '';
这可能是可行的,但我不知道具体位置和方式更好的方法是使用前缀B_u为所有3个表创建视图,这样代码中就不需要任何异常 插入查询也可以正常工作,因为在视图中只更新一个表 例如:
CREATE VIEW B_users as SELECT * FROM users;
因此,现在在CodeIgniter中,可以通过视图访问users表,并且可以正常工作。在您查询use
$this->db->dbprefix之前,它非常简单,可以被忽略
$this->db->dbprefix='';
我曾经这样使用过它,它对我来说很好
范例
public function table_update($data,$id)
{
$this->db->dbprefix = '';
$this->db->update('users', $data, array('id' => $id));
return $this->db->affected_rows();
}
你能检查一下吗
注意:在构造函数中调用dbprefix也不需要在dbprefix之前调用任何查询。请确保使用具有任何前缀表的模型时不遵循此操作
公共函数构造()
{
我想你误解了!这3个表与其他表不同,没有前缀。是的,我建议创建带有前缀的视图,这样就不需要对prefix.thanx进行任何代码更改,但目标是避免更改每个查询的源代码,如果我想这样做,我可以在查询=>$this->db->update('B_users',$data,array('id'=>$id));
parent::__construct();
$this->db->dbprefix = '';
}