php实现MySQL两库对比升级版

摘要:
in_array($structures1[$i],$structures2))echo$table。“.”.$structures1[$i].“”;}}
define('DATABASE1', 'db1');
$dbi1 = new DbMysql;
$dbi1->dbh = 'mysql://root:password@127.0.0.1/'.DATABASE1;

define('DATABASE2', 'db2');
$dbi2 = new DbMysql;
$dbi2->dbh = 'mysql://root:password@127.0.0.1/'.DATABASE2;

// db1
$db1 = array();
$map = array();
$dbi1->fetchMap("SHOW TABLES", $map);
$tables = array_keys($map);
for($i=0; $i<count($tables); $i++){
    $map = array();
    $dbi1->fetchMap("DESCRIBE ".$tables[$i], $map);
    $structures = array();
    foreach($map as $k=>$v){
        $structures[] = "$k=$v";
    }
    $db1[$tables[$i]] = $structures;
}

// db2
$db2 = array();
$map = array();
$dbi2->fetchMap("SHOW TABLES", $map);
$tables = array_keys($map);
for($i=0; $i<count($tables); $i++){
    $map = array();
    $dbi2->fetchMap("DESCRIBE ".$tables[$i], $map);
    $structures = array();
    foreach($map as $k=>$v){
        $structures[] = "$k=$v";
    }
    $db2[$tables[$i]] = $structures;
}

// db1 compare db2
echo("***** ".DATABASE1." *****
");
foreach($db2 as $table=>$structures2){
    $structures1 = $db1[$table];
    if(empty($structures1)) {
        echo(".$table not exist
");
        continue;
    }
    for($i=0; $i<count($structures2); $i++){
        if(!in_array($structures2[$i], $structures1))
            echo $table.".".$structures2[$i]."
";
    }
}

// db2 compare db1
echo("***** ".DATABASE2." *****
");
foreach($db1 as $table=>$structures1){
    $structures2 = $db2[$table];
    if(empty($structures2)) {
        echo(DATABASE2.".$table not exist
");
        continue;
    }
    for($i=0; $i<count($structures1); $i++){
        if(!in_array($structures1[$i], $structures2))
            echo $table.".".$structures1[$i]."
";
    }
}

免责声明:文章转载自《php实现MySQL两库对比升级版》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java安全之RMI协议分析docker容器网络查看下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

41.配置完善爬虫代码文件及图片下载文件重命名问题-2

解决图片下载重命名保存本地,直接上代码(在原来代码做了一定的修改)。总结:主要就是添加配置一个内置的函数,对保存的东西进行修改再存储,主要问题还是再piplines的设置里面。效果如图: hm5988.py #-*- coding: utf-8 -*- importscrapy from hm5988_web.items importHm5988We...

MySQL索引及使用详解

一.索引的作用        一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。        在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢...

Mysql 8.0+ windows 安装教程

1、下载zip安装包(过程略) 2、解压后的目录 3、配置环境变量 4、配置初始化的my.ini文件 解压后的目录并没有my.ini文件,没关系可以自行创建。在安装根目录下添加 my.ini(新建文本文件,将文件类型改为.ini),写入基本配置: [mysqld] # 设置3306端口 port=3306# 设置mysql的安装目录 basedir=D...

黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)

一、字符串替换 str_replace("iwind", "kiki", "i love iwind, iwind said"); 将输出 "i love kiki, kiki said" str_replace(find,replace,string,count)参数 描述  find 必需。规定要查找的值。 replace 必需。规定替换 find...

MYSQL使用指南DOS下操作

一、          连接MYSQL。 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的...

Kubernetes的搭建与配置(二):部署 Wayne 用户界面

1、关于Wayne 简介 GitHub:https://github.com/Qihoo360/wayne Wayne是一个Kubernetes的可视化管理平台,通过直观的页面操作便可完成Kubernetes中资源的创建、部署等操作。 采用微内核架构,通过插件化的方式将不同功能尽量的分离,更利于各种定制化功能的扩展。 在此基础上,融入了部门、项目的概念,通...