批量修改ecshop等php程序表名前缀的两个方法

2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家

1.  批量修改表名前缀有个很简单的方法,大家使用到的帝国备份王等工具就自带此功能:

批量替换表名的地方,看清楚了吗?

2. 第二个方法大家网上有说:将下面的代码保存到edit_table.php中放到网站根目录直接运行即可

 <?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 />”;
}
}

 转载请带chinab4c网址,不带网址的MJJ!

?>

这个方法有时会报错就是报ecs_session表找不到的错误,这个是因为,更新表之后,会执行更新ecs_session表的语

句,应该是因为没有清除缓存的原因,这个地方报错。

 

其实还有第三个方法,很简单,直接用phpmyadmin导出数据库表,然后用EditPlus打开表内容,来个批量替换,再

导入回去。新手看不清楚就把库替换坏了,不建议! 但chinab4c常用!

chinab4c建议大家用第一个方法,直观,方便,不容易出错! 替换其他程序也是如此! 

(责任编辑:chinab4c)