首页 > 数据库 >PHP轮子批量替换数据库前缀

PHP轮子批量替换数据库前缀

时间:2023-10-17 12:14:43浏览次数:36  
标签:old 前缀 数据库 sql prefix mysql 轮子 PHP

<?php
include_once('fix_mysql.inc.php');
//设置好相关信息
echo '<meta charset="utf-8">';
$dbserver='localhost';
$dbname='test';//替换成你的数据库名
$dbuser='root';//替换成你的数据库用户名
$dbpassword='123';//替换成你的数据库密码
$old_prefix='wp_';//修改前的表前缀
$new_prefix='';//修改后的表前缀
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;
}
 
//取得数据库内所有表名(与第二种方法有差异的地方)
$data = array();
$sql = "use ".$dbname;//指定使用哪个数据库
mysql_query($sql);
 
$sql = "SHOW TABLES";
$result = mysql_query($sql);
if(!$result){
    echo "DB Error, could not list tables\n";
    echo '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];
        //$table_name[$k] = str_replace($old_prefix, '', $v);
    }
}
 
if($preg)
{
    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;
    }
}

  参考网址:https://github.com/rubo77/php-mysql-fix/tree/master

      1.先引入fix_mysql.inc.php

  2.修复你数据库的链接方式

  3.本地执行代码

标签:old,前缀,数据库,sql,prefix,mysql,轮子,PHP
From: https://www.cnblogs.com/feimengv/p/17769373.html

相关文章

  • 前缀和(一维)
    一、算法描述本篇文章我们来介绍一个简单的算法,前缀和。什么是前缀和?前缀和是某一个序列的前n项的和,可以理解为数学上的数列的前n项和。如果\(a\)和\(s\)分别是原数组和前缀和数组,那么应该有如下关系:s[1]=a[1];、s[2]=a[1]+a[2];、s[3]=a[1]+a[2]+a[3];......
  • open_basedir(PHP可访问目录)
       open_basedir指令用来限制PHP只能访问那些目录,通常我们只需要设置Web文件目录即可。如果需要include加载外部脚本,也需要把脚本所在目录路径加入到open_basedir指令中,多个目录以分号(;)分割。   使用open_basedir需要注意的一点是,指定的显示实际上是前缀,而不是目录名......
  • 造轮子之集成GraphQL
    先简单对比以下GraphQL和WebAPI:GraphQL和WebAPI(如RESTfulAPI)是用于构建和提供Web服务的不同技术。数据获取方式:WebAPI:通常使用RESTfulAPI,客户端通过发送HTTP请求(如GET、POST、PUT、DELETE)来获取特定的数据。每个请求通常返回一个固定的数据结构,包含在响应的主体中。Gra......
  • PHP通用权限后台管理系统
    项目介绍一款PHP语言基于ThinkPhp6.x+Vue+ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,目前框架已集成了完整的RBAC权限架构和常规基础模块,前端Vue端支持多主题......
  • PHP前后端分离开发框架
    项目介绍一款PHP语言基于ThinkPhp6.x+Vue+ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,目前框架已集成了完整的RBAC权限架构和常规基础模块,前端Vue端支持多主题......
  • 造轮子之种子数据
    在前面我们基本把应用框架的基础设施搭建完成。接下来我们就得着手处理一下种子数据的问题。在一个基础框架里面,种子数据很重要,比如一些基础数据,初始用户等等,这些都需要初始化,否则程序启动却无法使用就很尴尬了。IDataSeeder首先定义一个种子数据接口usingWheel.DependencyIn......
  • 下面是一个稍微复杂一些的 PHP 代码示例: <?php // 定义一个 Person 类 class Person
    下面是一个稍微复杂一些的PHP代码示例:<?php//定义一个Person类classPerson{private$name;private$age;//构造函数publicfunction__construct($name,$age){$this->name=$name;$this->age=$age;}//获取姓名publicfunctiong......
  • PhpStudy
    phpstudy使用1.下载安装下载链接:小皮面板(phpstudy)-让天下没有难配的服务器环境!(xp.cn)直接下载V8.1版本就行了,自行安装注意:安装目录不能有中文和空格2.使用安装打开后页面如下:启动apache访问如下就算成功:3.启动mysql可以在左侧软件管理里面下载你所需要的mysq......
  • 二阶前缀和和二阶差分
    马上就要csps了还啥也不会,真就是酸菜鱼了。定义二阶差分就是在差分数组的基础上再做一次差分。举个很板的栗子就是对一个序列进行一个等差数列式的一个减法,这个时候我们可以通过二阶差分,在\(O(1)\)的复杂度进行修改,之后就是\(O(n)\)的二维前缀和,就可以维护出来我们的一个......
  • Ubuntu18.04下使用PHP7.2的连接sql server数据库
     一、简介SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。MicrosoftSQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本......