




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP实现Mysql远程同步代码需求:由于公司的英文网站放置在美国,而这些网站的数据要与大陆的服务器数据同步。 同步时间在一天之内。拿到需求之后,发现这两个网站的MYSQL数据库都不能远程访问(安全第一吧)。于是想起了 平时使用的CSV文件批量录入数据。于是尝试使用CSV导入导出。导入到处框架如下:1首先将数据导出成CSV的格式。建立一文件,放置在中国服务器上:csv.php.其实就是一个导出函数,通过数据库,表名和SQL语句来获得数据。?php/* 输出一个数据库中的表到一个CSV文件中* param string Mysql数据库的主机* param string 数据库名称* param string 数据库中的表名* param string 数据库的连接用户名* param string 数据库的连接密码* param string 数据库的表名* param string 数据库的 * param string 错误页面* param string SQL语句* return text 返回CSV格式的内容* access public*/function PMA_exportData($host,$db,$user,$pass,$filename,$table, $crlf, $error_url, $sql_query) $what=csv; $csv_terminated= ; $csv_separator=,; $csv_enclosed= ; $csv_escaped= mysql_connect($host, $user,$pass) or die(不能连接数据库,错误代码如下: . mysql_error(); mysql_select_db($db); $result = mysql_query($sql_query); $fields_cnt = mysql_num_fields($result); $cc=; /$fp = fopen($filename, w); / 格式化数据 while ($row = mysql_fetch_row($result) $schema_insert = ; for ($j = 0; $j $fields_cnt; $j+) if (!isset($row$j) | is_null($row$j) $schema_insert .=NULL; /用什么来替换空值 elseif ($row$j = 0 | $row$j != ) / loic1 :用引号包含字段值 if ($csv_enclosed = ) $schema_insert .= $row$j; else $schema_insert .= $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row$j) . $csv_enclosed; else $schema_insert .= ; if ($j 2.将CSV格式的内容导入到表中在美国服务器上建立个导入的文件,放置:import.php ,代码如下:?php/* 从一个上传的文件中将数据导入到一个表中* param string Mysql数据库的主机* param string 数据库名称* param string 数据库中的表名* param string 数据库的连接用户名* param string 数据库的连接密码* param string 数据库的表名* return bool 是否执行成功* access public*/function uploadFileOfCsv($host,$db,$user,$pass,$table,$content) mysql_connect($host, $user,$pass) or die(不能连接数据库,错误代码如下: . mysql_error(); mysql_select_db($db); $result = mysql_query(select * from $table); $fields_cnt = mysql_num_fields($result); $test2=array(array(); $rownum=0; log(提取的数据如下:.$content); $fd1 = fopen (C:test.csv,a); fwrite($fd1,$content); fclose($fd1); $fp = fopen(C:test.csv, r); while ($buffer = fgets($fp,4096) $i+; $tmp_arr = explode(,$buffer); if(trim($tmp_arr0) = ) echo ; echo alert(第.$i.行的ID空,请检查!); echo location.href=document.referrer; echo ; exit; $query = INSERT INTO $db.$table; $query .= values ( ; for($q=0;$q$fields_cnt;$q+) if($q=$fields_cnt-1) $tmp=$tmp_arr$q; $query.=$tmp); else $tmp=$tmp_arr$q; $query.=$tmp,; /end for($q=0; log2($query); mysql_query($query); fclose($fp); return OK; unlink(C:test.csv); function log2($event = null) /global $db; / global $login; if(LOG_ENABLED) $now = date(Y-M-d H:i:s); $fd = fopen (C:log.html,a); $log = $now. .$_SERVERREMOTE_ADDR . - $event ; fwrite($fd,$log); fclose($fd); ?3调用函数执行导出在中国服务器上再建立一个 文件:test_export.php,调用前面的csv.php的函数,然后将数据转成CSV,然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 效应分析题目及答案解析
- 掰手腕作文500字初中初一作文(13篇)
- 最美的青春初三作文最美的青春作文10篇范文
- 时间小主人课件
- 物理性质和社会变迁探究之浮力的教案
- 三农项目融资策划与实施方案手册
- 蓝色痛风预防和护理
- 统编版(部编版)小学三年级语文上学期第五单元分类训练题:句子练习(附答案)
- 纪念英雄的课件
- 快乐的一天300字10篇
- 占用林地补偿协议书
- 信息技术智能办公教程 课件 任务5-邮件合并
- 中建三局项目商务策划书(23P)
- 高一数学必修一必修二各章知识点总结
- 胃肠间质瘤规范化外科治疗中国专家共识(2025版)解读课件
- 校车与交通安全知识
- 2024临床输血指南
- 大体积混凝土施工培训讲义
- 香港标准租约合同模板
- 国能灵璧浍沟70MW风电项目 XGC15000TM-1000t履带吊-1000及SCC8000A-800t履带吊安拆方案
- 压力性损伤课件
评论
0/150
提交评论