首页> 实战笔录 >MySql MySql
php脚本批量修改mysql数据库表前缀
作者:小萝卜 2018-06-13 【 PHP MySql 】 浏览 2241
简介PHP通过mysqli拓展实现批量修改数据库表前缀
PHP通过mysqli拓展实现批量修改数据库表前缀:
//基础信息
$postdata = array(
'prefix'=>'ueo30_',
'database'=>'wlb',
'hostname'=>'localhost',
'username'=>'root',
'password'=>'',
'port'=>3306
);
$old_pre = 'ueo49_'; // 原表前缀
$new_pre = $postdata['prefix']; // 新表前缀
$db_name = $postdata['database']; //库名
$length = strlen($old_pre); // 原表前缀长度
//注意php.ini开启对应扩展
$mysqli = @ new \mysqli($postdata['hostname'], $postdata['username'], $postdata['password'], '', $postdata['port']);
if($mysqli->connect_error){
$this->error("连接数据库失败:".$mysqli->connect_error);
}
/**
* 选择数据库;db4
*/
$mysqli->select_db($db_name);
// 查询当前数据库中所有的表
$result = $mysqli->query("SHOW TABLES");
// 遍历所有的表
while($row = mysqli_fetch_array($result))
{
$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";
$query = $mysqli->query("ALTER TABLE `{$old_tablename}` RENAME TO `{$new_tablename}`");
}
}
$mysqli->close();
echo "数据库表前缀配置完成!";
/**
*由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息 *
*Deprecated: Function mysql_list_tables() is deprecated in … on line xxx *
*在php.ini中设置error_reporting,不显示方法过时提示信息 *
*error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED *
*/
很赞哦! (0)