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;
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM