zoukankan      html  css  js  c++  java
  • PHP--修改数据库表前缀

    <?php
    // error_reporting(0);
    //设置好相关信息
    $dbserver='localhost';//连接的服务器一般为localhost
    $dbname='jfpay';//数据库名
    $dbuser='root';//数据库用户名
    $dbpassword='';//数据库密码
    $old_prefix='pay_';//数据库的前缀
    $new_prefix='new_';//数据库的前缀修改为
    if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ){
        return false;
    }
    //PHP5.0开始mysql_connect()就不推荐使用了,到PHP7.0就直接被废弃了
     // mysqli_connect() 
    $con = mysqli_connect($dbserver, $dbuser, $dbpassword,$dbname);
    if (mysqli_connect_errno($con)) 
    { 
        echo "连接 MySQL 失败: " . mysqli_connect_error(); 
    } 
    
    
    //取得数据库内所有的表名 
    //$result = mysql_list_tables($dbname);
    //没有mysqli_list_tables()函数,使用mysqli_query() 代替
    $result = mysqli_query($con, "SHOW TABLES"); 
    if (!$result){
        echo 'MySQL Error: ' . mysqli_error();
        exit;
    }
    
    //把表名存进$data
     while ($row = mysqli_fetch_row($result)) {
        $data[] = $row;
    }
    //过滤要修改前缀的表名
    $preg = false;
    foreach($data as $k => $v){
        $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v[0], $v1);
        if($preg){
            $tab_name[$k] = $v1[2];
        }
    }
    if($preg){                
         foreach($tab_name as $k => $v){
            $sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`';
            mysqli_query($con, $sql);
        }
        echo  '数据表前缀:'.$old_prefix."已经修改为:".$new_prefix."<br/>";   
    }else{ echo '您的数据库表的前缀'.$old_prefix.'输入错误。请检查相关的数据库表的前缀';  
        if ( mysqli_free_result($result) ){
            return true;
        }
    }
    

      

  • 相关阅读:
    简化单例模式
    static
    单例模式之懒汉模式
    Car race game
    poj-2403
    poj-2612
    poj-1833
    poj--2782
    poj--2608
    poj--3086
  • 原文地址:https://www.cnblogs.com/f-rt/p/11162283.html
Copyright © 2011-2022 走看看