php迁移数据
2014-03-23 00:00
190 查看
业务的增长,有时数据库激增,满足不了现状,就需要对数据库进行调整和切分,难免要对数据进行处理后再插入到新的表中。在这个过程中,往往由于一些历史的问题,数据表中含有“脏数据”,也就是不符合规范的数据,比如用户名含有特殊字符,邮箱地址不为空却为空等等。最重要的是迁移数据的时间和准确性。 下面是一段迁移数据的php程序:
[codesyntax lang="php"][/code]
[codesyntax lang="php"][/code]
<?php
/* *** author: www.ttlsa.com ***** QQ群:39514058 *** E-mail:service@ttlsa.com */ $CONFIG['TTLSA']['from']=array(); $CONFIG['TTLSA']['from']['db_user']='root'; $CONFIG['TTLSA']['from']['db_pass']='123456'; $CONFIG['TTLSA']['from']['db_name']='ttlsa'; $CONFIG['TTLSA']['from']['db_host']="192.168.1.2";$CONFIG['TTLSA']['to']=array(); $CONFIG['TTLSA']['to']['db_user']='root'; $CONFIG['TTLSA']['to']['db_pass']=''; $CONFIG['TTLSA']['to']['db_name']='ttlsa_blog'; $CONFIG['TTLSA']['to']['db_host']="localhost"; $from_conn=mysql_connect($CONFIG['TTLSA']['from']['db_host'],$CONFIG['TTLSA']['from']['db_user'],$CONFIG['TTLSA']['from']['db_pass'],$CONFIG['TTLSA']['from']['db_name']); $to_conn=mysql_connect($CONFIG['TTLSA']['to']['db_host'],$CONFIG['TTLSA']['to']['db_user'],$CONFIG['TTLSA']['to']['db_pass']); mysql_select_db($CONFIG['TTLSA']['from']['db_name'],$from_conn); $max=3000000; $step=100000; for ($i=1;$i $step_i=$i+$step; mysql_query("set names 'utf8'",$from_conn); $sql="select `uid`,`reg_ip`,`reg_time`,`last_login`,`question`,`answer` from users where user_id>=$i and user_id $rs=mysql_query($sql,$from_conn) or die("Invalid query: " . mysql_error()); $value=array(); while ($v=mysql_fetch_array($rs, MYSQL_ASSOC)) { $column=array(); $column['uid']=$v['uid']; $column['reg_ip']=$v['reg_ip']; $column['reg_time']=$v['reg_time']; $column['last_login']=$v['last_login']; if ($column['question'] && $column['answer']) { $column['aq']=serialize(array($v['question'],$v['answer'])); //序列化存储 } else { $column['aq']=''; } $value[].="('{$column['uid']}','{$column['reg_ip']}','{$column['reg_time']}','{$column['last_login']}','{$column['aq']}')"; } if ($value) { $sql="insert into ttlsa_users (`uid`,`reg_ip`,`reg_time`,`last_login`,`aq`) values " . implode(",",$value); mysql_select_db($CONFIG['TTLSA']['to']['db_name'],$to_conn); mysql_query("set names 'utf8'",$to_conn); mysql_query($sql,$to_conn) or die("Invalid query: " . mysql_error()); } } ?> [/codesyntax]
相关文章推荐
- Laravel中数据迁移执行php artisan migrate 报错问题
- 如何在PHP项目中使用phinx进行数据迁移和建表
- [李景山php]每天laravel[034]-laravel 基础知识 --- 数据迁移及填充
- php读取mysql数据到页面乱码
- PHP导出数据到CSV文件
- ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化
- PHP put提交和获取数据
- django框架 modelsg更改后的数据迁移报错问题
- PHP(Thinkphp框架)将数据表导出csv文件
- php新闻发布系统发布成功从数据库查询所有数据用表格显示出来03
- PHP基础之数据类型4——字符串(String)
- android 通过json格式提交数据给php 调用数据库mysql
- 用PHP将数据导入到Foxmail
- Oracle中exp,imp(导入导出)数据迁移注意事项
- db2数据迁移到oracle
- [转]为 PHP 应用提速、提速、再提速!,第 3 部分: 用 Memcache 守护程序把数据缓存到内存中
- 基于php的基金财务数据接口调用代码实例
- 第十二天 PHP的数据类型转换
- oracle到mysql的迁移(一):表和数据的迁移
- ci框架整合phpexcel,实现数据导出excel