PHP 批量修改表名前缀

很多时候我们写项目时,都会给不同项目所用到的表名加上统一的前缀,这个也给将来迁移项目带来一定的麻烦。

有时可能的你迁移的目标数据库已经有了其它的项目存在,而且它们的表前缀又刚好跟你的一样,这样能怎么办,只能后来的迁就一下,改吧!

 

下面是我写的一段批量修改表前缀的代码,供大家参考一下,希望对大家有所帮助。

 

PHP代码

 1 <?php
 2 
 3 $old_pre = @$_GET['old_pre'];    // 原表前缀
 4 $new_pre = @$_GET['new_pre'];    // 新表前缀
 5 
 6 $length = strlen($old_pre);    // 原表前缀长度
 7 
 8 // 连接数据库
 9 $mysqli = @new mysqli("localhost","root","","wordpress");
10 
11 if(mysqli_connect_errno())
12 {
13     exit ("连接数据库失败:".mysqli_connect_error());
14 }
15 
16 // 查询当前数据库中所有的表
17 $result = $mysqli->query('SHOW TABLES');
18 
19 echo "-- <pre>\n\r";
20 // 遍历所有的表
21 while($row = $result->fetch_row())
22 {
23     $old_tablename = $row[0];
24     
25     // 判断表名是否包含要修改前缀
26     if($old_pre && $old_pre == substr($old_tablename, 0, $length))
27     {
28         $new_tablename = $new_pre.substr($old_tablename, $length);
29         echo " ALTER TABLE `{$old_tablename}` RENAME TO `{$new_tablename}`; \n\r";
30     }
31     
32 }
33 echo "-- </pre>";
34 
35 $mysqli->close();

 

 

修改改前

 

运行(old_pre : 原前缀,留空则为在原前缀上加上新前缀,new_pre : 新前缀,留空则为删除原前缀)

 

 

 

修改后

 

posted @ 2015-11-11 11:20  臭脸喵  阅读(900)  评论(0)    收藏  举报