通过PHP批量修改数据库表前缀名称

张子凡 设计开发 2015-07-16 21:28:32 阅读(...) 评论(1)

不论你使用的是哪一款程序,基本上都会有设置数据表前缀,以便于区分数据表。但是有些时候我们需要统一的修改这个前缀名称就变得非常棘手了,这也是子凡在整合多个站点会员用户数据表遇到的一个问题,同样有时候我们可能是在本地调试时直接就使用的默认的前缀,但是我们上线后的网站使用,我们还是会做选择性的修改,那么子凡这里给大家提供一个非常简单的方法。

使用方法:将下面的代码复制到记事本,根据注释信息修改好数据库信息,并保存了i.php。再上传到网站根目录运行即可。

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
<?php//设置好相关信息$dbserver='localhost';//连接的服务器一般为localhost$dbname='dbname';//数据库名$dbuser='dbusername';//数据库用户名$dbpassword='password';//数据库密码$old_prefix='old_';//数据库的前缀$new_prefix='new_';//数据库的前缀修改为if(!is_string($dbname)||!is_string($old_prefix)||!is_string($new_prefix)){returnfalse;}if(!mysql_connect($dbserver,$dbuser,$dbpassword)){print'Could not connect to mysql';exit;} //取得数据库内所有的表名$result=mysql_list_tables($dbname);if(!$result){print"DB Error, could not list tables\n";print'MySQL Error: '.mysql_error();exit;} //把表名存进$datawhile($row=mysql_fetch_row($result)){$data[]=$row[0];} //过滤要修改前缀的表名foreach($dataas$k=>$v){$preg=preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i",$v,$v1);if($preg){ $tab_name[$k]=$v1[2]; //$tab_name[$k] = str_replace($old_prefix, '', $v);}}if($preg){//echo '<pre>';//print_r($tab_name);//exit();//批量重命名foreach($tab_nameas$k=>$v){ $sql='RENAME TABLE`'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`'; mysql_query($sql);}print 数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";}else{print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;if(mysql_free_result($result)){ returntrue;}}?>

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/php-modify-dbname.html

发表评论

  1. 正山小种的泡法
    1楼
    正山小种的泡法 2015年07月

    学习了,下次试一下这个方法。