首页 > 开发 > ThinkPHP > 正文

thinkPHP--多数据库交互通信

2024-09-09 15:19:56
字体:
来源:转载
供稿:网友

下面是数据库备份的例子,从一个数据库中取数据复制到另一个数据库中.

1,在config.php中配置实用的数据库信息

  1. //源数据库 
  2. "DB_DSN1" => "mysql://用户名:密码@数据库地址:端口/数据库名称"
  3. //目标数据库 
  4. "DB_DSN2" => "mysql://用户名:密码@数据库地址:端口/数据库名称"
  5. //例如: 
  6. "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) 将源数据库数据存入目标数据表

  1. foreach($data as $val){ 
  2.        $model->db("2",$dsn2)->query("SET FOREIGN_KEY_CHECKS=0;"); 
  3.        //保存 
  4.        $rev=$model->db("2",$dsn2)->table($table)->where($mWhere)->save($val); 
  5.        //添加 
  6.        //$rev=$model->db("2",$dsn2)->table($table)->add($val); 
  7.      } 
  8.       //上面的的操作将数据库又指向了目标数据库 
  9.      //还可以使用这样的查询$model->db("2",$dsn2)->query("SET FOREIGN_KEY_CHECKS=0;"); 

通过上面的4步可以使不同的数据库来回的切换.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选