PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)
如有疑问,加群交流:646104701
源码运行结果截图:
PHP批量替换MySql数据库内容 UTF-8 1.0版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | <?php //声明 //1、本源码开发意图:作者在使用一些CMS建站的时候发现很多CMS把网址写入到数据库了,如果换网址,那么就需要更新数据库中的老网址,如果一个一个修改,很不方便,所以开发此源码,供大家学习或使用; //2、源码开发者:杨波; //3、源码开发者联系QQ:773003231; //4、源码开发者博客:http://www.cnblogs.com/phpyangbo/; //5、源码开放性:任何人都可以随意更改或使用本源码,本源码为开源并免费使用,不存在版权。 //替换数据库内容类 class replace{ public $dbAddress ; //数据库地址 public $dbUser ; //数据库用户名 public $dbPwd ; //数据库密码 public $dbName ; //数据库名称 public $dbPort ; //数据库端口 public $keywords ; //需要替换的关键字 public $result_keywords ; //替换成什么 //数据库连接 public function dbConnect( $dbAddress , $dbUser , $dbPwd , $dbName , $dbPort = '' ){ if ( empty ( $dbPort )){ $dbPort = '3306' ; } $this ->dbAddress = $dbAddress ; $this ->dbUser = $dbUser ; $this ->dbPwd = $dbPwd ; $this ->dbName = $dbName ; $this ->dbPort = $dbPort ; //数据库连接 $dbCon = mysql_connect( $dbAddress . ':' . $dbPort , $dbUser , $dbPwd ); //数据库连接验证 if ( $dbCon ){ //数据库连接成功 //指定数据库 $assign = mysql_select_db( $dbName , $dbCon ); if ( $assign ){ mysql_query( "set names 'utf8'" ); //设置要使用的字符集 return array ( 'return' =>true, 'ps' => '数据库连接成功' ); } else { return array ( 'return' =>false, 'ps' => '指定数据库失败' ); } } else { //数据库连接失败 return array ( 'return' =>false, 'ps' => '数据库连接失败:' .mysql_error()); } } //查询所有表 public function queryTable(){ $rs = mysql_query( "SHOW TABLES FROM " . $this ->dbName); $tables = array (); while ( $row = mysql_fetch_row( $rs )) { $tables [] = $row [0]; } mysql_free_result( $rs ); return $tables ; } //查询所有带关键字的数据并替换 /* table 数据库中的所有表名数组 keywords 查询的关键字 result 要替换成什么 */ public function queryReplace( $table , $keywords = '' , $result_keywords = '' ){ $this ->keywords = $keywords ; $this ->result_keywords = $result_keywords ; $arr = array (); //装载返回信息 $index = 1; //自增值 //循环所有表 foreach ( $table as $key => $v ){ $result = mysql_query( 'select * from ' . $v ); for ( $i =0; $i <mysql_num_fields( $result ); $i ++){ $fieldName = mysql_field_name( $result , $i ); //到这里,数据库名称是 $this->dbName 表名是 $v 字段名是 $fieldName $fieldResult = mysql_query( 'select ' . $fieldName . ' from ' . $v ); while ( $fieldRow = mysql_fetch_array( $fieldResult )){ //判断该字段中的数据内容是否存在将要替换的关键字 $fieldValue = $fieldRow [ $fieldName ]; if ( strpos ( $fieldValue , $keywords ) !== false){ //如果存在就继续执行替换 $replaceBack = str_replace ( $keywords , $result_keywords , $fieldValue ); //更换数据 if (mysql_query( 'update ' . $v . ' set ' . $fieldName . '="' . $replaceBack . '" where ' . $fieldName . '="' . $fieldValue . '"' )){ $arr [ $index ][ "dbName" ] = $this ->dbName; $arr [ $index ][ "tableName" ] = $v ; $arr [ $index ][ "fieldName" ] = $fieldName ; $index ++; } } } } } return $arr ; } } //程序逻辑 $replace = new replace(); //实例化类 $steps = $_GET [ "steps" ]; //执行步骤 //dbSet数据库信息设置 //detection检测 if ( empty ( $steps )){ $steps = 'dbSet' ; } if ( $steps == 'detection' ){ $dbAddress = $_POST [ "dbAddress" ]; $dbUser = $_POST [ "dbUser" ]; $dbPwd = $_POST [ "dbPwd" ]; $dbName = $_POST [ "dbName" ]; $dbPort = $_POST [ "dbPort" ]; $keywords = $_POST [ "keywords" ]; $result_keywords = $_POST [ "result_keywords" ]; if ( empty ( $dbAddress ) || empty ( $dbUser ) || empty ( $dbPwd ) || empty ( $dbName ) || empty ( $dbPort ) || empty ( $keywords )){ die ( "带星号的值必须填写" ); } $db = $replace ->dbConnect( $dbAddress , $dbUser , $dbPwd , $dbName , $dbPort ); $queryTable = $replace ->queryTable(); } //以下为HTML ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title>批量替换MySql数据库内容 UTF-8 1.0版 - 作者:杨波 联系QQ:773003231</title> <style> *{margin:0;padding:0;font-size:12px;} .box{ width: 300px; padding: 20px; border: 1px solid #eee; margin: 0 auto; margin-top: 150px; background-color: #fcfcfc; } h1{ font-size: 16px; line-height: 40px; font-weight: bold; color: #333; } h2{ line-height: 25px; font-weight: normal; color: #999; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #eee; margin-bottom: 15px; } p{ min-height: 30px; } p input{ border: 1px solid #ccc; padding-top: 3px; padding-right: 5px; padding-bottom: 3px; padding-left: 5px; } a{ color: #03F; } span{ line-height: 25px; color: #F00; } </style> </head> <body> <div class = "box" > <h1>批量替换MySql数据库内容 UTF-8 1.0版</h1> <h2>作者:杨波 联系QQ:773003231 本程序因为编码是UTF-8所以只支持此类型编码的数据库替换,如果您是其它类型的数据库请修改本源码</h2> <?php if ( $steps == 'dbSet' ){?> <form id= "form1" name= "form1" method= "post" action= "?steps=detection" > <p>数据库地址:<input type= "text" name= "dbAddress" value= "localhost" /> * <p>数据库用户:<input type= "text" name= "dbUser" /> * <p>数据库密码:<input type= "text" name= "dbPwd" /> * <p>数据库名称:<input type= "text" name= "dbName" /> * <p>数据库端口:<input type= "text" name= "dbPort" value= "3306" /> * <p>需要替换的关键字:<input type= "text" name= "keywords" /> * <p>替换成什么关键字:<input type= "text" name= "result_keywords" /> <p><span>注意:此操作不可撤销,进入下一步之前,请您先备份将要执行替换操作的数据库,如果您进入下一步,造成的任何后果,作者不承担任何责任,此源码仅用于学习交流,请勿用于任何商业使用</san> <p><input type= "submit" name= "button" id= "button" value= " 开始替换 " style= "margin-left:90px;margin-top:30px;" /> </form> <?php } else if ( $steps == 'detection' ){?> <p>数据库状态:<?= $db [ 'ps' ]?> <p>正在替换... <p>替换完成</p> <p>共替换:<?= count ( $replace ->queryReplace( $queryTable , $keywords , $result_keywords ))?>次 <p><a href= "?" >返回上一步</a></p> <?php }?> </div> </body> </html> |
标签:
mysql数据库内容批量替换
, cms网址替换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)