如有疑问,加群交流:646104701

源码运行结果截图:

PHP批量替换MySql数据库内容 UTF-8 1.0版

<?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>

本文出自:http://www.cnblogs.com/phpyangbo/p/4904698.html

PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)的更多相关文章

  1. PDO 拿出來的 Float 數據跟数据库中的数据不匹配

    数据库中的价格字段是 float 类型的,在 Laravel 中取出会出现这样的情况 数据库:71.9 -> 程序打印:72.0 数据库:75.2 -> 程序打印:75.3 在另外一个测试 ...

  2. 在MongoDB数据库中查询数据(上)

    在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...

  3. 将一个数据库中表的数据导入另一个数据库(DB2)

    将一个数据库中的数据导入另一个数据库(DB2) 我这里举得例子是使用的DB2数据库,其他数据库思路也是这样啦! 1.从db2 数据库中将表中的数据导入本地的excel中 export to d:\my ...

  4. mysql数据库中插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...

  5. Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)

    目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...

  6. 使用sqoop将MySQL数据库中的数据导入Hbase

    使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-con ...

  7. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  8. PHP MySQL Delete删除数据库中的数据

    PHP MySQL Delete DELETE 语句用于从数据库表中删除行. 删除数据库中的数据 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_na ...

  9. JDBC Java 程序从 MySQL 数据库中读取数据,并备份到 xml 文档中

    MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 程序从 MySQL 数据库中读取数据,并 ...

  10. 使用grabit分析mysql数据库中的数据血缘关系

    使用grabit分析mysql数据库中的数据血缘关系 Grabit 是一个辅助工具,用于从数据库.GitHub 等修订系统.bitbucket 和文件系统等各种来源收集 SQL 脚本和存储过程,然后将 ...

随机推荐

  1. 使用grep恢复被删除文件内容【转】

    http://www.cnblogs.com/ggjucheng/archive/2012/10/07/2714311.html Unix/Linux下,最危险的命令恐怕就属rm命令了,每次在root ...

  2. VIM进阶学习之几种模式和按键映射

    Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手. vim里最基本的map用法也就是 :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a 当然 ...

  3. 论文笔记之:Multiple Feature Fusion via Weighted Entropy for Visual Tracking

    Multiple Feature Fusion via Weighted Entropy for Visual Tracking ICCV 2015 本文主要考虑的是一个多特征融合的问题.如何有效的进 ...

  4. (转)8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset

    8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset by Jason Brownlee on August ...

  5. breakpoints

    https://blogs.msdn.microsoft.com/visualstudioalm/2013/10/07/breakpoints-in-visual-studio-2013/ Using ...

  6. CLR thread pool

    Thread Pooling https://msdn.microsoft.com/en-us/library/windows/desktop/ms686756(v=vs.85).aspx Threa ...

  7. s2-032批量脚本

    看乌云上许多大牛上脚本,我也写个玩吧!写的比较简单.懒得优化,参数获取就自己改吧 需要抓很多struts,可用爱站工具包或则自己写个脚本爬 #coding:utf8 import urllib2 im ...

  8. SQL注入脚本(基于时间)

    #encoding=utf-8 import httplib import time import string import sys import urllib header = {'Accept' ...

  9. python子类分配

    原问题是将左边样式变成右边样式: 即有父类和子类,父类包括多个子类,怎样将子类匹配到父类下面的问题 代码如下 #!/usr/bin/python3.4 # -*- coding: utf-8 -*- ...

  10. DBA常用SQL之会话与等待事件

    SELECT * FROM V$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' ORDER BY LOGON_TIME, SID; 1 ...