网站首页

PHP 批量修改表名前缀的屌法

发布时间:2017-07-15 23:57:51编辑:admin阅读(

    <?php
    
    $old_pre = @$_GET['o'];    // 原表前缀
    $new_pre = @$_GET['n'];    // 新表前缀
    
    $length = strlen($old_pre);    // 原表前缀长度
    
    // 连接数据库
    $mysqli = @new mysqli("localhost","root","root","gouwu");
    
    if(mysqli_connect_errno())
    {
        exit ("连接数据库失败:".mysqli_connect_error());
    }
    
    // 查询当前数据库中所有的表
    $result = $mysqli->query('SHOW TABLES');
    
    echo "-- <pre>\n\r";
    // 遍历所有的表
    while($row = $result->fetch_row())
    {
        $old_tablename = $row[0];
        
        // 判断表名是否包含要修改前缀
        if($old_pre && $old_pre == substr($old_tablename, 0, $length))
        {
            $new_tablename = $new_pre.substr($old_tablename, $length);
            echo " ALTER TABLE `{$old_tablename}` RENAME TO `{$new_tablename}`; \n\r";
        }
        
    }
    echo "-- </pre>";
    
    $mysqli->close();

    访问连接,得出SQL。直接执行

    http://127.0.0.1/t.php?o=旧的前缀&n=新的前缀