PHP 进行数据庫对比工具
<?php
/**
* author jackluo
* net.webjoy@gmail.com
*/
class IMysqlDiff
{ private $master,$slave; public function __construct()
{
$this->master = array();
$this->slave = array();
} /**
* master
*/ public function setMasterTable($host,$user,$pwd,$dbname){ $conn = mysql_connect($host,$user,$pwd);
if (!$conn) {
throw new Exception("Database Connect Error");
} $select = mysql_select_db($dbname,$conn); //标准的数据库
if (!$select) {
throw new Exception("SELECT Database Error");
} $q = mysql_query("show tables");
while($s = mysql_fetch_array($q)){
$name = $s[0];
$q1 = mysql_query("desc $name");
while ($s1 = mysql_fetch_array($q1)) {
$this->master[$name][] =$s1[0];
}
}
mysql_close($conn);
} /**
* Slave
*/ public function setSlaveTable($host,$user,$pwd,$dbname){
$conn = mysql_connect($host,$user,$pwd);
if (!$conn) {
throw new Exception("Database Connect Error");
} $select = mysql_select_db($dbname,$conn); //标准的数据库
if (!$select) {
throw new Exception("SELECT Database Error");
} $q = mysql_query("show tables");
while($s = mysql_fetch_array($q)){
$name = $s[0];
$q1 = mysql_query("desc $name");
while ($s1 = mysql_fetch_array($q1)) {
$this->slave[$name][] =$s1[0];
}
}
mysql_close($conn);
} /**
* comparison
*/ public function comparison(){
$f = $e = array();
$str = $fuhao ='';
foreach($this->master as $k=>$v){ if (!empty($this->slave[$k])){
if (!is_array($this->slave[$k])) {
$e[] = $k; //缺少表
}else if(count($this->slave[$k]) <> count($v)){
foreach($v as $k1=>$v1){
if(!in_array($v1,$this->slave[$k])){
$f[$k][] = $v1; ////缺少表的字段
}
}
}
}else{
$e[] = $k;
}
}
return array('tables'=>$e,'fields'=>$f);
} } /*
$diff = new IMysqlDiff();
$diff->setMasterTable('127.0.0.1','root','admin','platform_test');
$diff->setSlaveTable('127.0.0.1','root','admin','platform');
$result = $diff->comparison(); print_r($result);
//*/
//*/
PHP 进行数据庫对比工具的更多相关文章
- 文件对比工具Beyond Compare使用方法
今天向大家介绍一个使用起来十分方便且功能十分强大的文件对比工具-Beyond Compare. 1 工具下载 工具的下载很简单,百度搜索Beyond Compare即可. 下载完成后,解压缩,双 ...
- 【软件分享】文本对比工具 Beyond Compare
转载自公众号:EmbeddDeveloper 对嵌入式感兴趣可以关注原作者博客: http://blog.csdn.net/ybhuangfugui 此处转载为分享用 Ⅰ.摘要 Beyond Comp ...
- 【百度地图API】百度API卫星图使用方法和卫星图对比工具
原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...
- Oracle EBS数据定义移植工具:Xdf(XML Object Description File)
转载自:http://www.orapub.cn/posts/3296.html Oracle EBS二次开发中,往往会创建很多数据库对象,如表.同义词.视图等,这些数据库对象是二次开发配置管理内容很 ...
- 造轮子之数据库对比工具DataBaseComparer
最近同时在维护好几个项目,有些项目是SqlServer的,另一些是MySql的,DBA推荐了一个线上库和线下库的对比工具,用的时候经常会在对比时,半天都没有进度.索性自己这次造个轮子,做了一个纯对比数 ...
- [转]Git调用第三方对比工具beyondCompare
点击阅读原文 对于我这种 git 命令行小白来说, git 自带的对比工具各种水土不服,想念以前的 svn 小乌龟 + beyondCompare 的日子...纠结完 gitHub client 未果 ...
- Tiff – 值得你体验一下的可视化的字体对比工具
Tiff 是一款字体对比工具,可视化对比两种字体之间的差异.这是一个工具来帮助比较两种字体,同时学习排版.在这一点上,谷歌 Web 字体作为 Tiff 外部字体文件的唯一来源.由于应用程序使用的一些功 ...
- 文件夹差异文件对比工具 meld
/***************************************************************************************** * 文件夹差异文件 ...
- 数据接口管理工具 thx RAP
RAP是数据接口管理工具.在开发时前端将请求转至RAP,由RAP提供模拟数据:而后端使用RAP测试接口的正确性.这样RAP就成为了开发过程中的强 依赖,进而确保接口文档的实时正确性.RAP采用JSON ...
随机推荐
- Oracle 备份与恢复介绍
一.Oracle备份方式分类:Oracle有两类备份方式:(1)物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带.物理备份又分为冷备份.热备份: (2)逻 ...
- cordova
cordova 1.安装 nodejs => node -v2.安装 npm install -g cordova => cordova -v3.安装 jdk 环境变量:(系统变量) 新建 ...
- vector的主要操作
vector常用方法 assign() 对Vector中的元素赋值 void assign( input_iterator start, input_iterator end ); // void a ...
- C# 对象转换为byte[] ,byte[]还原对象
/// <summary> /// 将一个object对象序列化,返回一个byte[] /// </summary> /// <param name ...
- POJ 2114 Boatherds 树分治
Boatherds Description Boatherds Inc. is a sailing company operating in the country of Trabantust ...
- 通讯录(ios自带无界面)
1,添加框架AddressBook.framework 2,请求权限认证,在Appdelegate.m文件中 - (BOOL)application:(UIApplication *)applicat ...
- Java学习笔记(四)——流程控制语句
一.条件语句 1.if条件语句 (1)语法: if(条件) { 条件成立时的代码 } (2)执行过程 2.if else语句 if(条件) { 条件成立时的代码 } else { 不成立的代码 } 3 ...
- 循环冗余检验算法CRC
http://blog.csdn.net/liyuanbhu/article/details/7882789 首先要了解多项式乘法,除法 了解模2运算的含义,多项式除法后合并同类项时..系数%2处理 ...
- sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
/****** Object: StoredProcedure [dbo].[getSplitValue] Script Date: 03/13/2014 13:58:12 ******/ SET A ...
- string、math、random、datetime类
1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确 ...