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 图片上添加透明度渐变的效果
Jun 29 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
php如何获取文件的扩展名
Oct 28 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP封装的完整分页类示例
Aug 21 PHP
php获取微信基础接口凭证Access_token
Aug 23 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
php htmlspecialchars加强版
2010/02/16 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
常用DOM整理
2015/06/16 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
Pycharm github配置实现过程图解
2020/10/13 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
保荐人的岗位职责
2013/11/19 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
python中urllib包的网络请求教程
2022/04/19 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang
关于Redis的主从复制及哨兵问题
2022/06/16 Redis