新闻中心

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

作者 / 无忧主机 时间 2012-08-30 04:58:22

mysql数据库表前缀,这个是我们区分其它表的一个方式,当我们同一个数据库中含有多个系统的的时候,表前缀就却分的唯一标识。我们使用php开源程序安装建站的时候,一般数据库表前缀都是默认设置好的,如:wordpress的默认数据库表前缀是wp_,echosp的默认数据库表前缀是ecs_,discuz的默认数据库表前缀是pre_,织梦内容管理系统(dede)的默认数据库表前缀是dede_。在其官方安装教程中或开源系统安全安装方法中,都建议在安装的时候,建议修改这个天下人皆知的默认表前缀。如果您不留神,已经使用了默认的表前缀怎么办?有办法改吗?无忧主机(www.51php.com)小编,今天就用ecshop网店开源系统演示,如何修改ecshop的mysql数据库表前缀名。 涉及数据库的修改都是要非常危险的,所以备份不可少。建议使用两种以上的方法在php虚拟主机中备份你的网站数据库。无忧主机空间的控制面板也提供备份功能,你可以参考“网站整站一键备份与恢复”。教程中将涉及两种方法修改,一种是批量修改(使用php脚步完成)一种是精确修改(使用sql查询语句完成)。 方法一:使用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数据库表前缀名

<?php
//设置好相关信息
$dbserver='localhost';//连接的服务器一般为localhost
$dbname='y8n9nghmze_shop';//数据库名
$dbuser='y8n9nghmze_user';//数据库用户名
$dbpassword='admin';//数据库密码
$old_prefix='ecs_';//数据库的前缀
$new_prefix='51php_';//数据库的前缀修改为
if (
 !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) )
{
return false;
}
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;

}

//把表名存进$data

while ($row =
 mysql_fetch_row($result)) {

$data[] = $row[0];

}
//过滤要修改前缀的表名
foreach($data as $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_name as $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) ) {
return true;
}
}
?>
2、 在浏览器输入访问您的网址/51php.php.数据库表的前缀就可以修改成功了。 2013年5月28日更新: 无忧主机小编(www.51php.com)今天更新一个mysql数据库表前缀的另一个方法,这个方法使用也非常简单,就是用第三方工具——帝国备份王进行修改。操作方法如下: 1、登录帝国备份后台,选择“备份数据”—— “批量替换表名”,然后执行操作就可以完成批量替换了,也非常简单。如下图:   以上方法都可修改网站前缀,不过大多数的开源程序修改表缀后,再需要修改网站程序的数据库配置文件,才会让网站网站的运行。如何修改网站的数据库可以参考各个开源程序帮助文档,如果您有什么不懂的地方,欢迎加咨询与我交流(qq:340555005)。   纯Linux环境下高端免备案【香港独立IP地址】php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:https://www.51php.com/mysql/7967.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服