6.8 切换数据库
匿名 · 更新于 2013/12/25
如果你需要切换到另外一个数据库(包括在相同和不同的数据库类型之间切换)或者需要连接多个数据库进行操作不同的数据,就需要使用ThinkPHP提供的数据库切换方法,用法很简单, 只需要调用Model类的db方法,用法:
数据库配置的定义方式和模型定义connection属性一样,支持数组、字符串以及调用配置参数三种格式。
Db方法调用后返回当前的模型实例,直接可以继续进行模型的其他操作,所以该方法可以在查询的过程中动态切换,例如:
当第二次切换到相同的数据库的时候,就不需要传入数据库连接信息了,可以直接使用:
Model->db("数据库编号","数据库配置");
数据库配置的定义方式和模型定义connection属性一样,支持数组、字符串以及调用配置参数三种格式。
Db方法调用后返回当前的模型实例,直接可以继续进行模型的其他操作,所以该方法可以在查询的过程中动态切换,例如:
$this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");
当第二次切换到相同的数据库的时候,就不需要传入数据库连接信息了,可以直接使用:
$this->db(1)->query("查询SQL");
$this->db(0);
如果我们已经在项目配置中定义了其他的数据库连接信息,例如:
//数据库配置1'DB_CONFIG1' = array('db_type' => 'mysql','db_user' => 'root','db_pwd' => '1234','db_host' => 'localhost','db_port' => '3306','db_name' => 'thinkphp'),//数据库配置2'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp';
$this->db(1,"DB_CONFIG1")->query("查询SQL");$this->db(2,"DB_CONFIG2")->query("查询SQL");
$this->db(1)->table("top_user")->find();
M("User","think_","mysql://root:123456@localhost:3306/test")->query("查询SQL");
M("User","think_","DB_CONFIG1")->query("查询SQL");
