php框架

 首页 > php框架 > ThinkPHP > thinkPHP--多数据库交互通信 - Thinkphp

thinkPHP--多数据库交互通信 - Thinkphp

分享到:
【字体:
导读:
          下面是数据库备份的例子,从一个数据库中取数据复制到另一个数据库中 1,在config php中配置实用的数据库信息 源数据库DB_DSN1=mysql:...

thinkPHP--多数据库交互通信

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

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步可以使不同的数据库来回的切换.

分享到:
在thinkphp3中如何处理cookie数组 - Thin...
在thinkphp3中如何处理cookie数组 最近玩thinkphp框架时,遇到cookie真让人头晕,网上百度了一下,找到的大概都是thinkphp2.0的资料,说在Think\Lib\Think\Util\Cookie.class.php中,但实际上thinkphp3.0已经将cookie移到ThinkPHP\Common\functions.php中,用test.php测试了一下cookie函数,发现coo...
thinkphp的缓存技术 - Thinkphp
thinkphp的缓存技术 如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层,如果没有缓存层,访问层是直接从数据库存取层读取数...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……