利用php修改mysql數(shù)據(jù)庫表前綴
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
話不多說,直接干貨;
<?php
// error_reporting(0);
//設(shè)置好相關(guān)信息
$dbserver='localhost';//連接的服務(wù)器一般為localhost
$dbname='jfpay';//數(shù)據(jù)庫名
$dbuser='root';//數(shù)據(jù)庫用戶名
$dbpassword='';//數(shù)據(jù)庫密碼
$old_prefix='pay_';//數(shù)據(jù)庫的前綴
$new_prefix='new_';//數(shù)據(jù)庫的前綴修改為
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();
}//取得數(shù)據(jù)庫內(nèi)所有的表名
//$result = mysql_list_tables($dbname);
//沒有mysqli_list_tables()函數(shù),使用mysqli_query() 代替
$result = mysqli_query($con, "SHOW TABLES");
if (!$result){
echo 'MySQL Error: ' . mysqli_error();
exit;
}//把表名存進(jìn)$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 '數(shù)據(jù)表前綴:'.$old_prefix."已經(jīng)修改為:".$new_prefix."<br/>";
}else{ echo '您的數(shù)據(jù)庫表的前綴'.$old_prefix.'輸入錯(cuò)誤。請(qǐng)檢查相關(guān)的數(shù)據(jù)庫表的前綴';
if ( mysqli_free_result($result) ){
return true;
}
}
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!