classreplace{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 functionqueryTable(){$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;$idbName 表名是 $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
?>