切换到宽版
  • 882阅读
  • 0回复

[phpwind]如何批量修改mysql的表前缀名称 [复制链接]

上一主题 下一主题
离线梦丫头

Uid:
1 尚未绑定靓号,此帐号可能会被系统回收
 

发帖
148
铜币
4440658
威望
42
贡献值
0
银元
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2019-03-12
w}VS mt$F  
D4[1CQ@}4D  
Mi&,64<  
用文本工具新建一个文本文件,比如1.php Z.+-MNWV  
DytH } U"  
Um 9Gjd  
4`5jq)  
用Notepad++编辑1.php =M^4T?{T  
,<*n>W4|  
wvsKn YKX  
PeGL Rbx34  
输入以下代码,并按照要求修改好数据库相关信息. ,<n >g;  
z/u;afB9q  
<?php ;$Q `JN=  
//设置好相关信息 @ SaU2  
$dbserver='localhost';//连接的服务器一般为localhost ?{l}35Q .@  
$dbname='icka459c7h_blog';//数据库名 hI*gw3 V  
$dbuser='icka459c7h_blog';//数据库用户名 s*{l}~fPkW  
$dbpassword='admin';//数据库密码 s>(OK.o  
$old_prefix='ecs_';//数据库的前缀 I\E`xkbBu  
$new_prefix='51php_';//数据库的前缀修改为 o-\ K]  
if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ) ,.[T]37  
   { d2sY.L  
                       return false; `s93P^%  
               } 8A/"ia  
   Zg1=g_xY  
           if (!mysql_connect($dbserver, $dbuser, $dbpassword)) { F#_JcEE  
               print 'Could not connect to mysql'; m  "'  
               exit; Bfe#,  
           } &nkYJi(!  
               //取得数据库内所有的表名 .4E5{F{~  
           $result = mysql_list_tables($dbname); jMv qKJ(<  
   )H@"S]?7i"  
           if (!$result) { A|>~/OW=@  
               print "DB Error, could not list tables\n"; kN(*.Q|VZ  
               print 'MySQL Error: ' . mysql_error(); Y,BzBUWK  
               exit; 52Sq;X  
           } q.sErr[zc  
               //把表名存进$data \Ps}1)wT  
           while ($row = mysql_fetch_row($result)) { 7A:k  
               $data[] = $row[0]; |v,%!p s  
           } '-9B`O,&  
               //过滤要修改前缀的表名 aumWU{j=  
               foreach($data as $k => $v) yM* CA,(c  
               { Dp1FX"a)  
                       $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1); _:dt8+T#  
                       if($preg) ?\ Fo|_ _  
                       { R=Qa54  
                               $tab_name[$k] = $v1[2]; GJTKqr|1O  
                               //$tab_name[$k] = str_replace($old_prefix, '', $v); [[vu#'bc  
                       } p I>yO~Ve  
   -@*[   
               } |:qaF  
if($preg) \/qo2'V j`  
{ sY|by\-c  
             //        echo '<pre>'; UQ X.  
       //        print_r($tab_name); v3zd>fDnRp  
       //        exit(); yM_ta '^$  
               //批量重命名 |gV$ks\<  
               foreach($tab_name as $k => $v) GbFtX\s+5j  
               { 3y# U|&]{  
                       $sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`'; f0^; *Y  
                mysql_query($sql); ^ <$$h  
   6H ]rO3[8  
          } # dA-dN  
print  数据表前缀:.$old_prefix." H\>0jr `  
".已经修改为:.$new_prefix." a+-X\qN  
"; ^Rpy5/d  
   $>M-oNeC  
} xj!G9x<!  
else @$*LU:[  
{ print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀; 7{BTtUMAC  
   swTur  
           if ( mysql_free_result($result) ) { cWU9mzsE  
             return true; <i$ud&D  
           } c e\| eN[  
} vVy X[ZZ  
?>
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个