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里瀏覽一下。但是終究有遺漏吧。所以自己寫了個(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獲取redis里不存在的6位隨機(jī)數(shù)應(yīng)用示例【設(shè)置24小時(shí)過(guò)時(shí)】
這篇文章主要介紹了PHP獲取redis里不存在的6位隨機(jī)數(shù)的方法,可設(shè)置24小時(shí)過(guò)時(shí)限制,涉及php字符串及數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
php mb_substr()函數(shù)截取中文字符串應(yīng)用示例
substr()函數(shù)用來(lái)截取字符串,但是對(duì)于中文字符會(huì)出現(xiàn)問(wèn)題,而mb_substr()和mb_strcut這兩個(gè)函數(shù)可以,下面為大家介紹其具體用法2014-07-07
php實(shí)現(xiàn)登錄tplink WR882N獲取IP和重啟的方法
這篇文章主要介紹了php實(shí)現(xiàn)登錄tplink WR882N獲取IP和重啟的方法,涉及php基于curl的登陸及數(shù)據(jù)傳輸相關(guān)技巧,需要的朋友可以參考下2016-07-07
php daddslashes()和 saddslashes()有哪些區(qū)別分析
在Discuze 開源項(xiàng)目中會(huì)經(jīng)常用到 saddslashes 函數(shù),這里簡(jiǎn)單介紹下,方便需要的朋友2012-10-10

