php+mysqli实现批量替换数据库表前缀的方法


Posted in PHP onDecember 29, 2014

本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法。分享给大家供大家参考。具体分析如下:

在php中有时我们要替换数据库中表前缀但是又不苦于一个个表去修改前缀,这里我自己写了一个mysqli批量替换数据库表前缀的php程序,感兴趣的朋友可以参考一下,代码如下:

<?php 
header ( 'http-equiv="Content-Type" content="text/html; charset=utf-8"' ); 
$DB_host = "localhost"; //数据库主机 
$DB_user = "root"; //数据库用户 
$DB_psw = "root3306"; //数据库密码 
$DB_datebase = "gk_yue39_com"; //数据库名 
$DB_charset = "utf8"; //数据库字符集 
$dbprefix="yue392_com_"; 
$new_dbprefix="yue39_com_"; 
$db = new mysqli ( $DB_host, $DB_user, $DB_psw ); //实例化对象 
 
//检查连接 
if (mysqli_connect_errno ()) { 
 printf ( "Connect failed: %sn", mysqli_connect_error () ); 
 exit (); 
} 
 
$db->select_db ( $DB_datebase ); //选择操作数据库 
 
$db->set_charset ( $DB_charset ); //设置数据库字符集 
 
//执行一个查询 
$sql = 'show tables'; 
$result = $db->query ( $sql ); 
 
echo $result->num_rows . ' 行结果 ' . $result->field_count . ' 列内容<br/>'; 
 
//$result->data_seek('5');//从结果集中第5条开始取结果 
 
echo '<table border="1" cellspacing="0" cellpadding="0" align="center" width="90%">'; 
 
//循环输出字段名 
//$result->field_seek(2);//从字段集中第2条开始取结果 
while ( true == ($field = $result->fetch_field ()) ) { 
 echo '<th>' . $result->current_field . '_' . $field->name . '(' . $field->length . ')</th>'; 
} 
 
//循环输出查询结果 
while ( true == ($row = $result->fetch_assoc ()) ) { 
 echo '<tr>'; 
 foreach ( $row as $col ) { 
$sql="rename table `".$col."` to `".str_replace ( $dbprefix, $new_dbprefix, $col)."`"; 
 if($db->query ( $sql )){ 
 echo '<td align="center">' . $sql. '</td><td><font color="blue"> success</font></td>'; 
 }else{ 
 echo '<td align="center">' . $sql. '</td><td><font color="red"> failed</font></td>';
 } 
 } 
 echo '</tr>'; 
} 
 
echo '</table>'; 
$result->free ();//释放结果集 
$db->close (); //关闭连接 
?>

第二种方法:如何批量修改MYSQL的数据库表前缀名称

批量修改表名的操作方法,以下操作请用navicat操作即可,快捷方便:

SELECT CONCAT( ‘ALTER TABLE ‘, TABLE_NAME, ‘RENAME TO ‘, TABLE_NAME,‘;' )

FROM information_schema.TABLES

WHERE TABLE_NAME LIKE ‘uc_%';

执行后得到如下的结果:

ALTER TABLE uc_aaa RENAME TO uc_aaa;

ALTER TABLE uc_bbb RENAME TO uc_bbb;

保留如下的数据:

ALTER TABLE uc_aaa RENAME TO uc_aaa;

ALTER TABLE uc_bbb RENAME TO uc_bbb;

然后选择要修改的数据库,执行上面得到的SQL语句就可以修改掉数据库表前缀了。
附:1、批量删除指定前缀的表

SELECT CONCAT( ‘drop table ‘, TABLE_NAME, ‘;' )

FROM information_schema.TABLES

WHERE TABLE_NAME LIKE ‘uc_%';

2、“dbtable_name”改成“db_table_name”

SELECT CONCAT( ‘ALTER TABLE ‘, TABLE_NAME, ‘RENAME TO db_', SUBSTRING(TABLE_NAME,3),‘;' )

FROM information_schema.TABLES

WHERE TABLE_NAME LIKE ‘db%';

第三种方法:

今天更新一个mysql数据库表前缀的另一个方法,这个方法使用也非常简单,就是用第三方工具——帝国备份王进行修改。操作方法如下:

1、登录帝国备份后台,选择“备份数据”—— “批量替换表名”,然后执行操作就可以完成批量替换了,也非常简单。如下图:

php+mysqli实现批量替换数据库表前缀的方法

 如何批量修改mysql的表前缀名称

以上方法都可修改网站前缀,不过大多数的开源程序修改表缀后,再需要修改网站程序的数据库配置文件,才会让网站网站的运行。
希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP邮件专题
Oct 09 PHP
用PHP连接Oracle数据库
Oct 09 PHP
php 生成随机验证码图片代码
Feb 08 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 #PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 #PHP
php读取远程gzip压缩网页的方法
Dec 29 #PHP
php导入大量数据到mysql性能优化技巧
Dec 29 #PHP
推荐几个开源的微信开发项目
Dec 28 #PHP
dedecms集成财付通支付接口
Dec 28 #PHP
VPS中使用LNMP安装WordPress教程
Dec 28 #PHP
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
Java分治归并排序算法实例详解
2017/12/12 Python
Django实现单用户登录的方法示例
2019/03/28 Python
tensorflow如何批量读取图片
2019/08/29 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python统计文章中单词出现次数实例
2020/02/27 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
傲盾软件面试题
2015/08/17 面试题
2015年教务工作总结
2015/05/23 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js