当前位置:站易网首页 > 建站教程 > 网站开发 > PHP教程 > 如何批量修改MYSQL的表前缀名称

如何批量修改MYSQL的表前缀名称

文章TAG:
时间:2014-08-14来源:未知 作者:admin 文章热度:

mysql数据库表前缀,这个是我们区分其它表的一个方式,当我们同一个数据库中含有多个系统的的时候,表前缀就却分的唯一标识。我们使用php开源程序安装建站的时候,一般数据库表前缀都是默认设置好的,如:wordpress的默认数据库表前缀是wp_,echosp的默认数据库表前缀是ecs_,discuz的默认数据库表前缀是pre_,织梦内容管理系统(dede)的默认数据库表前缀是dede_。在其官方安装教程中或开源系统安全安装方法中,都建议在安装的时候,建议修改这个天下人皆知的默认表前缀。如果您不留神,已经使用了默认的表前缀怎么办?有办法改吗?


 

方法一:使用sql语句修改mysql数据库表前缀名

首先我们想到的就是用sql查询语句来修改,这个方法也很方便,只需进入无忧主机控制面板——phpmyadmin登入后,在运行 SQL 查询框中输入如下语名就可以了。

ALTER TABLE 原表名 RENAME TO 新表名;

如:

ALTER TABLE old_post RENAME TO new_post;

Sql查询语句有一个缺点,那就是一句SQL语句只能修改一张数据库的表名,如果你要精确修改某一张表,很好用。如果数据库表很多的话,不推荐使用。有木有,批量修改多个数据库表前缀名称的方法类?有的,请看下面的介绍

方法二:php脚本批量修改mysql数据库表前缀

下面无忧主机(www.51php.com)小编收集的一个快速批量的修改数据表前缀的方法,小编已经测试,成功修改。如果你需要,请参考借鉴如下:

1、将下面的代码复制到记事本,根据自己人情况修改好数据库信息,并保存了51php.php。再上传您网站的根目录。您可以直接下载mysql数据库前缀名批量修改脚步:修改mysql数据库表前缀名

1 <?php
2 //设置好相关信息
3 $dbserver='localhost';//连接的服务器一般为localhost
4 $dbname='y8n9nghmze_shop';//数据库名
5 $dbuser='y8n9nghmze_user';//数据库用户名
6 $dbpassword='admin';//数据库密码
7 $old_prefix='ecs_';//数据库的前缀
8 $new_prefix='51php_';//数据库的前缀修改为
9 if (
10  !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) )
11 {
12 return false;
13 }
14 if (!mysql_connect($dbserver,
15  $dbuser, $dbpassword)) {
16 print 'Could not connect to mysql';
17 exit;
18 }
19  
20 //取得数据库内所有的表名
21  
22 $result =
23  mysql_list_tables($dbname);
24  
25 if (!$result) {
26  
27 print "DB Error, could not
28  list tables\n";
29  
30 print 'MySQL Error: ' .
31  mysql_error();
32  
33 exit;
34  
35 }
36  
37 //把表名存进$data
38  
39 while ($row =
40  mysql_fetch_row($result)) {
41  
42 $data[] = $row[0];
43  
44 }
45 //过滤要修改前缀的表名
46 foreach($data as $k => $v)
47 {
48 $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i",
49  $v, $v1);
50 if($preg)
51 {
52 $tab_name[$k] =
53  $v1[2];
54 //$tab_name[$k]
55  = str_replace($old_prefix, '', $v);
56 }
57 }
58 if($preg)
59 {
60 //        echo '<pre>';
61 //        print_r($tab_name);
62 //        exit();
63 //批量重命名
64 foreach($tab_name as $k =>
65  $v)
66 {
67 $sql = 'RENAME TABLE
68  `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`';
69 mysql_query($sql);
70 }
71 print  数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";
72 }
73 else
74 { print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;
75 if ( mysql_free_result($result) ) {
76 return true;
77 }
78 }
79 ?>

2、 在浏览器输入访问您的网址.数据库表的前缀就可以修改成功了。

2013年5月28日更新:

今天更新一个mysql数据库表前缀的另一个方法,这个方法使用也非常简单,就是用第三方工具——帝国备份王进行修改。操作方法如下:

1、登录帝国备份后台,选择“备份数据”—— “批量替换表名”,然后执行操作就可以完成批量替换了,也非常简单。如下图:

如何批量修改mysql的表前缀名称 201358 150x150

 

以上方法都可修改网站前缀,不过大多数的开源程序修改表缀后,再需要修改网站程序的数据库配置文件,才会让网站网站的运行。如何修改网站的数据库可以参考各个开源程序帮助文档,如果您有什么不懂的地方,欢迎加咨询与我交流


    相关PHP教程