php替换mysql表前缀
文章描述:
php批量替换MySQL数据库表前缀
1、配置
//设置好相关信息
$servername = "localhost";
//连接的服务器一般为localhost
$username = "root";
//数据库用户名
$password = "root";
//数据库密码
$dbname = "system";
//数据库名
$old_prefix='ecs_';
//数据库的前缀
$new_prefix='sys_';
//数据库的前缀修改为
2、检查
if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ) {
return false;
}
3、创建链接
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
4、查询表
$result = mysqli_query($conn, "SHOW TABLES FROM ".$dbname);
echo "<pre>";
while ($row = mysqli_fetch_row($result)){
$data[] = $row[0];
}
//print_r($data);
5、过滤替换
//过滤要修改前缀的表名
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.'`';
mysqli_query($conn, $sql);
}
echo "数据表前缀:".$old_prefix."<br>"."已经修改为:".$new_prefix."<br>";
} else {
echo "您的数据库表的前缀".$old_prefix."输入错误。请检查相关的数据库表的前缀";
if (mysqli_free_result($result)) {
return true;
}
}
发布时间:2022/05/07
发表评论