广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > ecshop如何批量修改表前缀

二次开发Ecshop二次开发

二次开发Ecshop二次开发

ecshop如何批量修改表前缀

有时我们可能想更改一下数据库表的前缀名,你可以在 phpmyadmin中一个一个更改,但是这样做太麻烦了,echshop自带88个数据表,一个个的改完能烦死人,
所以我搞了一个可以批量更新表前缀的方法,将下面的代码保存到edit_table.php中放到网站根目录直接运行即可,此方法根据
php+mysql批量修改数据库表名演化而来的。


<?php
define(‘IN_ECS’, true);
require(dirname(__FILE__) . ‘/includes/init.php’);
$sql = “show tables”;
$rows = $db->query($sql);
$old_prefix = ‘ecs’;
$new_prefix = ‘test_’;
$dataname = “utf273″;
while($row = $GLOBALS['db']->fetchRow($rows)){
$arr = explode(“_”,$row['Tables_in_'.$dataname]);
if($arr[0] == $old_prefix){//保证要替换的是表的前缀
$new_table_name = str_replace($old_prefix.”_”, $new_prefix, $row['Tables_in_'.$dataname]);//替换前缀
}
$sql = ‘rename table ‘.$row['Tables_in_'.$dataname].’ TO ‘.$new_table_name;
if($GLOBALS['db']->query($sql)){
echo ‘rename table ‘.$row['Tables_in_'.$dataname].’ TO ‘.$new_table_name.”<br />”;
}
}

?>
这个方法有时会报错就是报ecs_session表找不到的错误,这个是因为,更新表之后,会执行更新ecs_session表的语句,应该是因为没有清除缓存的原因,这个地方报错。