利用php修改mysql數據庫表前綴
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
話不多說,直接干貨;
<?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;
}
}
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!