下面是數(shù)據(jù)庫備份的例子,從一個(gè)數(shù)據(jù)庫中取數(shù)據(jù)復(fù)制到另一個(gè)數(shù)據(jù)庫中.
1,在config.php中配置實(shí)用的數(shù)據(jù)庫信息
- //源數(shù)據(jù)庫
- "DB_DSN1" => "mysql://用戶名:密碼@數(shù)據(jù)庫地址:端口/數(shù)據(jù)庫名稱",
- //目標(biāo)數(shù)據(jù)庫
- "DB_DSN2" => "mysql://用戶名:密碼@數(shù)據(jù)庫地址:端口/數(shù)據(jù)庫名稱",
- //例如:
- "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);//將模型默認(rèn)定義為dsn1
3) 定義需要查詢的源數(shù)據(jù)表
$table=$model->db("1")->table('查詢的表名稱');
$data=$table->where(查詢條件)->select();
4) 將源數(shù)據(jù)庫數(shù)據(jù)存入目標(biāo)數(shù)據(jù)表
- 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);
- }
- //上面的的操作將數(shù)據(jù)庫又指向了目標(biāo)數(shù)據(jù)庫
- //還可以使用這樣的查詢$model->db("2",$dsn2)->query("SET FOREIGN_KEY_CHECKS=0;");
通過上面的4步可以使不同的數(shù)據(jù)庫來回的切換.
新聞熱點(diǎn)
疑難解答
圖片精選