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测试代码结束------------------------------------------------>
备注:这两个数据库不同,数据表名字也不同,但数据表的结构相同。不同表结构导入原理是一致的,在【另注】有介绍。如下图所示:
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测试代码结束------------------------------------------------>
相关文章推荐
- php实现mysql两个数据库中表的数据同步
- php同步mysql两个数据库中表的数据
- MySQL存储过程跨数据库操作同步数据
- php数据库操作——新数据插入到MySQL
- PHP mysql 两个数据库的表连接查询
- 运用php连接数据库操作示例(MYSQL)
- 用php脚本比较MySQL两个数据库的结构差异
- Android之网络编程利用PHP操作MySql插入数据(四)
- 随笔记录 MYSQL 数据库操作数据表崩溃
- php操作创建数据库并导入数据文件
- Java线程:线程的同步与锁 一、同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。 例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对
- php操作mysql执行数据库查询的一些常用操作罗列
- PHP系列(十一)PHP操作mysql(i)数据库
- 如何从数据库调出数据显示到页面 PHP+Mysql+Html(简单实例)
- [转载]不同服务器数据库之间的数据操作--复制同步(整理版)
- mysql数据的安装以及数据库的操作
- php操作mysql--连接数据库 创建表 填充表
- Oracle DBLinke+实体化视图同步两个数据库的数据
- 【转】 mysql使用federated引擎实现远程访问数据库(跨网络同时操作两个数据库中的表)
- PHP数据库编程-使用mysql扩展库对数据库操作