拿到需求之后,发现这两个网站的MYSQL数据库都不能远程访问(安全第一吧)。于是想起了 平时使用的CSV文件批量录入数据。于是

尝试使用CSV导入导出。

导入到处框架如下:

1首先将数据导出成CSV的格式。

建立一文件,放置在中国服务器上:csv.php.其实就是一个导出函数,通过数据库,表名和SQL语句来获得数据。

csv.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 < fields_cnt-1) {

schema_insert .= csv_separator;

}

} // end for

// fwrite(fp,schema_insert . csv_terminated);

cc.=schema_insert . csv_terminated;

} // end while

mysql_free_result(result);

// fclose(fp);

return cc;

}

?>

2.将CSV格式的内容导入到表中

在美国服务器上建立个导入的文件,放置:import.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_arr[0]) == ""){

echo "

echo "alert('第".i."行的ID空,请检查!');";

echo "location.href=document.referrer;";

echo "";

exit;

}

query = "INSERT INTO db.table";

query .=" values ( ";

for(q=0;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." "._SERVER["REMOTE_ADDR"] ." - event
";

fwrite(fd,log);

fclose(fd);

}

}

?>

3调用函数执行导出

在中国服务器上再建立一个 文件:test_export.php,调用前面的csv.php的函数,然后将数据转成CSV,然后临时存到一个表单的

textera中,注意表单提交的位置:

require_once("csv.php");

host="localhost";

db="project";

user="root";

pass="";

//导出tb_contact表的数据为csv文件

filename = 'file4.csv';

cc=PMA_exportData( host,db,user,pass, filename,"tb_project_dvp", "", "test.php", "select * from tb_project_dvp") ;

handle = fopen(filename, "rb");

contents = fread(handle, filesize (filename));

fclose(handle);

?>

再在美国服务器上防置如下文件用于接受上传上来的数据,文件名为 test_import.php:

require_once("csv.php");

require_once("import.php");

host="localhost";

db="wintopweb";

user="root";

pass="";

if(_POST['action']=="1"){

content=_POST['textarea'];

echo uploadFileOfCsv(host,db,user,pass,"tb_project_dvp",content);

}

?>

最后 利用Windows-xp/nt/03 控制面版中自带 任务计划,调度执行中国服务器test_export.php文件即可

php与mysql同步_php实现mysql同步的实现方法相关推荐

  1. 使用php连接mysql数据库_PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 /** * @Author: HTL * @Description: ...

  2. php.ini mysql扩展_PHP安装mysql.so扩展及相关PHP.ini 配置参数说明

    在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错 Fatal error: Uncaught Error: Cal ...

  3. php 复制mysql数据库_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  4. php连接mysql地址_PHP连接mysql

    PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Data Objects) 在 ...

  5. php联系mysql配置_php支持mysql配置

    想在Centos5.2上装一个discuz论坛,在突破了apache权限问题后,发现discuz的提示信息里显示不支持mysql: mysql_connect() 不支持 请检查mysql 模块是否正 ...

  6. php和mysql入门_PHP和MySQL入门(10)

    在第二章中,我们使用一个叫mysql的程序来连接到MySQL数据库服务器,在这个程序中,我们可以输入SQL查询(命令)并立即显示查询结果.在PHP中,有着类似的机制:mysql_query函数. my ...

  7. php简单的mysql类_PHP 简单mysql封装类

    class Mysql { private $host ; private $user ; private $pwd ; private $dbName ; private $charset ; pr ...

  8. php mysql三_PHP和MySQL基础教程(三)

    用 cookies 来跟踪识别用户 让我们来看看保存在浏览器中的内容.如果你用的是 IE5 ,在 windows 目录下有一个 cookies 的目录,里面有很多文本文件,文件名都是类似于 wudon ...

  9. php调用mysql库_PHP调用三种数据库的方法(1)

    PHP调用三种数据库的方法(1) 更新时间:2006年10月09日 00:00:00   作者: MySQL是一个小巧灵珑的数据库服务器软件,对于中.小型应用系统是非常理想的.除了支持标准的ANSI ...

最新文章

  1. swift轮播图代码
  2. 从零开始用Python实现k近邻算法(附代码、数据集)
  3. easyui datagrid checkbox的相关属性整理
  4. 皮一皮:高科技产品真是防不胜防...
  5. C语言中typedef的六种用法
  6. 【必须收藏】那些酷炫的深度学习网络图怎么画出来的?
  7. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
  8. oracle创建数据库的三种方法
  9. CPU中的Little Endian与Big Endian
  10. httpservletrequest 设置请求头_大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
  11. 纯新手DSP编程--5.30--任务的通信和同步
  12. 哲学与科学的批判性思维工具
  13. 彩扩机项目--NPN和PNP三极管作为开关管的区别
  14. 基于51单片机的智能加湿控制器设计
  15. 计算机更新后打印机无法使用,Win10升级后惠普打印机无法打印的解决方法
  16. Mathematica做微积分
  17. linux怎么远程取文件大小,Linux shell自动读mongo数据、远程获取文件大小示例脚本...
  18. 《Windows游戏编程》读书笔记
  19. 三维可视化管理的内容及六项原则
  20. PMP考试报名条件是什么?

热门文章

  1. 你以为 CSS 只是个简单的布局?装逼指南了解一下
  2. Jetson TX1使用usb camera采集图像 (1)
  3. WordPress更新时提示无法连接到FTP服务器的解决方案
  4. 【代码审计】使用SonarQube进行代码质量分析管理
  5. 04、Vue.js---自定义过滤器
  6. 在leangoo里怎么复制删除列表?
  7. centos7+samba 安装与调试记录
  8. TX Text Control文字处理教程
  9. No module named MySQLdb (django)
  10. linux 在某个core上的中断 affinity c语言函数,Linux中断处理体系结构