mysql數(shù)據(jù)庫(kù)差異比較的PHP代碼
更新時(shí)間:2012年02月05日 20:48:18 作者:
這天遇見(jiàn)個(gè)需求:由于升級(jí)系統(tǒng) 這些系統(tǒng)從A庫(kù)升級(jí)到B庫(kù),但是不知道數(shù)據(jù)庫(kù)添加了哪些字段和增加了哪些表
當(dāng)然可以去PHPMYADMIN里瀏覽一下。但是終究有遺漏吧。所以自己寫(xiě)了個(gè),比較數(shù)據(jù)庫(kù)差異的腳本(PHP的),方便一下自己。當(dāng)然代碼很簡(jiǎn)單,就不講解了,貼代碼:
<?
mysql_connect('localhost','root','root');
mysql_select_db('tablea'); //標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)
$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)) {
$a[$name][] =$s1[0];
}
}
mysql_close();
mysql_connect('localhost','root','root');
mysql_select_db('tableb');//需要比較的數(shù)據(jù)庫(kù)
$q2 = mysql_query("show tables");
while($s2 = mysql_fetch_array($q2)){
$name2= $s2[0];
$q3 = mysql_query("desc $name2");
while ($s3 = mysql_fetch_array($q3)) {
$aa[$name2][] =$s3[0];
}
}
mysql_close();
$f = $e = array();
$str = $fuhao ='';
foreach($a as $k=>$v){
if(!is_array($aa[$k])){
$e[] = $k;
}
else{
if(count($aa[$k]) <> count($v)){
foreach($v as $k1=>$v1){
if(!in_array($v1,$aa[$k])){
$f[$k][] = $v1;
}
}
}
}
}
echo "<pre>";
print_r($e);//缺少表
print_r($f);//缺少表的字段
?>
復(fù)制代碼 代碼如下:
<?
mysql_connect('localhost','root','root');
mysql_select_db('tablea'); //標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)
$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)) {
$a[$name][] =$s1[0];
}
}
mysql_close();
mysql_connect('localhost','root','root');
mysql_select_db('tableb');//需要比較的數(shù)據(jù)庫(kù)
$q2 = mysql_query("show tables");
while($s2 = mysql_fetch_array($q2)){
$name2= $s2[0];
$q3 = mysql_query("desc $name2");
while ($s3 = mysql_fetch_array($q3)) {
$aa[$name2][] =$s3[0];
}
}
mysql_close();
$f = $e = array();
$str = $fuhao ='';
foreach($a as $k=>$v){
if(!is_array($aa[$k])){
$e[] = $k;
}
else{
if(count($aa[$k]) <> count($v)){
foreach($v as $k1=>$v1){
if(!in_array($v1,$aa[$k])){
$f[$k][] = $v1;
}
}
}
}
}
echo "<pre>";
print_r($e);//缺少表
print_r($f);//缺少表的字段
?>
相關(guān)文章
讓PHP開(kāi)發(fā)者事半功倍的十大技巧小結(jié)
在PHP中,單純按照自己思路去解決問(wèn)題往往會(huì)是一種錯(cuò)誤的辦法。這并不是因?yàn)槟闶且粋€(gè)糟糕的程序員,而是因?yàn)槿绻阆雽?xiě)出好的可維護(hù)性強(qiáng)的代碼,有些標(biāo)準(zhǔn)技巧是你必須要使用的。2010-04-04PHP 5.3新特性命名空間規(guī)則解析及高級(jí)功能
本文介紹了PHP命名空間的一些術(shù)語(yǔ),其解析規(guī)則,以及一些高級(jí)功能的應(yīng)用,希望能夠幫助讀者在項(xiàng)目中真正使用命名空間。2010-03-03php+jQuery+Ajax實(shí)現(xiàn)點(diǎn)贊效果的方法(附源碼下載)
這篇文章主要介紹了php+jQuery+Ajax實(shí)現(xiàn)點(diǎn)贊效果的方法,結(jié)合實(shí)例形式詳細(xì)介紹了php結(jié)合jQuery的ajax無(wú)刷新提交實(shí)現(xiàn)點(diǎn)贊功能的具體步驟與相關(guān)技巧,需要的朋友可以參考下2015-12-12php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞實(shí)例分析
這篇文章主要介紹了php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞,結(jié)合實(shí)例形式分析了php 多進(jìn)程編程中父進(jìn)程的阻塞、等待、子進(jìn)程退出、非阻塞等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02利用phpexcel對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)入excel(excel篩選)、導(dǎo)出excel
本篇文章主要介紹了利用phpexcel對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)入excel(excel篩選)、導(dǎo)出excel的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04