下面是数据库备份的例子,从一个数据库中取数据复制到另一个数据库中.
1,在config.php中配置实用的数据库信息
- //源数据库
- "DB_DSN1" => "mysql://用户名:密码@数据库地址:端口/数据库名称",
- //目标数据库
- "DB_DSN2" => "mysql://用户名:密码@数据库地址:端口/数据库名称",
- //例如:
- "DB_DSN1" => "mysql://user:123@127.0.0.1:3306/db1",
2,使用方法
1) 从config.php取配置信息
$dsn1=C('DB_DSN1');
$dsn2=C("DB_DSN2");
2) 定义模型
$model=new Model();
$model->db("1",$dsn1);//将模型默认定义为dsn1
3) 定义需要查询的源数据表
$table=$model->db("1")->table('查询的表名称');
$data=$table->where(查询条件)->select();
4) 将源数据库数据存入目标数据表
- foreach($data as $val){
- $model->db("2",$dsn2)->query("SET FOREIGN_KEY_CHECKS=0;");
- //保存
- $rev=$model->db("2",$dsn2)->table($table)->where($mWhere)->save($val);
- //添加
- //$rev=$model->db("2",$dsn2)->table($table)->add($val);
- }
- //上面的的操作将数据库又指向了目标数据库
- //还可以使用这样的查询$model->db("2",$dsn2)->query("SET FOREIGN_KEY_CHECKS=0;");
通过上面的4步可以使不同的数据库来回的切换.