您的位置:首页 > 编程语言 > PHP开发

php操作mysql两个数据库中表的数据同步

2013-11-19 11:18 796 查看
题记: 我们开发当中经常会遇到,数据同步。比如将teaching数据库中area表的数据同步到study数据库中zone表中。

备注:这两个数据库不同,数据表名字也不同,但数据表的结构相同。不同表结构导入原理是一致的,在【另注】有介绍。如下图所示:

teaching数据库area表结构:



study数据库zone表结构:



下面演示:给teaching数据库area表添加几条数据,然后用php操作,导入到study数据库中的zone表中。添加的数据如图所示:



准备完成后开始php编码:

//建立数据库连接,localhost为主机名,root即mysql用户登录名,我这里的mysql登录密码为空。

$conn = mysql_connect("localhost","root","");

//由于是将teaching数据库中area表的数据同步到study数据库中zone表,所以这里选择连接的数据库为:study

mysql_select_db("study");

清空study数据库zone表的内容,以便和导入的teaching数据库中area的数据一致。

$delSql="delete from `zone`";

$rel_del= @mysql_query($delSql);

//导入操作。

$sql="insert into study.zone(`id`, `areaID`, `area`, `father`) select `id`, `areaID`, `area`, `father` from teaching.area "; $result= mysql_query($sql);if($result){echo "<font color='green' >恭喜您,数据同步成功!</font>";

}else{ echo "<font color='red' >数据同步出错,请检查!</font>";

}

代码编写完毕后保存,我们这里就随便起个名字,就命名为31.php。如下图所示:



然后运行31.php测试,提示“恭喜您,数据同步成功!”;如图所示:



然后我们对比发现连个数据库中数据表的数据完全一致。数据同步成功:效果如下图所示:





另注:不同数据库,不同数据表结构之间的数据同步原理和这个相同,保持插入时字段位置对应好即可。

下面将这次演示的代码及数据库脚本全粘贴出来方便大家测试和学习。

<-------------------------------------------------------SQL脚本开始---------------------------------------------------->

create database teaching;

CREATE TABLE `area` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`areaID` varchar(50) CHARACTER SET gb2312 DEFAULT NULL,

`area` varchar(60) CHARACTER SET gb2312 DEFAULT NULL,

`father` varchar(6) CHARACTER SET gb2312 DEFAULT NULL,

PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3187 ;

INSERT INTO `area` (`id`, `areaID`, `area`, `father`) VALUES

(2759, '610101', '市辖区', '610100'),(2760, '610102', '新城区', '610100'),

(2761, '610103', '碑林区', '610100'),(2762, '610104', '莲湖区', '610100'),

(2763, '610111', '灞桥区', '610100'),(2764, '610112', '未央区', '610100'),

(2765, '610113', '雁塔区', '610100'),(2766, '610114', '阎良区', '610100'),

(2767, '610115', '临潼区', '610100'),(2768, '610116', '长安区', '610100'),

(2769, '610122', '蓝田县', '610100');

create database study;

CREATE TABLE `zone` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`areaID` varchar(50) CHARACTER SET gb2312 DEFAULT NULL,

`area` varchar(60) CHARACTER SET gb2312 DEFAULT NULL,

`father` varchar(6) CHARACTER SET gb2312 DEFAULT NULL,

PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3187 ;

<-------------------------------------------------------SQL脚本结束---------------------------------------------------->

<------------------------------------------------------php测试代码开始------------------------------------------------>

<?php

$conn = mysql_connect("localhost","root","");

mysql_select_db("study");

$delSql="delete from `zone`";

$rel_del= @mysql_query($delSql);

$sql="insert into study.zone(`id`, `areaID`, `area`, `father`) select `id`, `areaID`, `area`, `father` from teaching.area ";

$result= mysql_query($sql);

if($result){

echo "<font color='green' >恭喜您,数据同步成功!</font>";

}else{

echo "<font color='red' >数据同步出错,请检查!</font>";

}

?>

<------------------------------------------------------php测试代码结束------------------------------------------------>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: