有人可以给我一些关于如何创建PHP脚本以将远程csv文件加载到mySQL表中的指示吗?
我已经使用 CSV 中的字段和相关类型设置了 mySQL 表。
我相信如果文件在本地系统上,我可以使用以下内容:
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
最终的解决方案将是一个linux服务器,它有一个cronjob,可以在每天早上4点运行php脚本。 CSV 文件将位于需要登录凭据的 SFTP 共享中。 不幸的是,它不能放在同一个盒子上。
考虑到Simons下面的评论,我现在正在努力让它在本地导入:
$data = $conn->query('LOAD DATA INFILE ' .$filelocation. ' INTO TABLE wl_transactions FIELDS TERMINATED BY ";" IGNORE 1 LINES');
如果可以从 PHP 写入 MySQL 服务器的本地文件系统,则可以使用 PHP curl 函数检索远程文件,然后将其保存到本地文件,最后触发 LOAD DATA
命令。
这就是我让它在WordPress插件环境中工作的方式,希望它能对你有所帮助。
我首先创建了一个表单,用户可以在其中选择 csv 文件并选择其他设置。
这些设置位于$this>csv_settings数组中
if(isset($this->csv_settings['ignore'])):
$ignore = "IGNORE 1 LINES ({{The columns to ignore}})";
else:
$this->csv_settings['ignore'] = NULL;
endif;
/** @var wpdb $wpdb */
global $wpdb;
$result = $wpdb->query($wpdb->prepare('load data local infile ''$this->path_to_file'' into table {{your table name}} fields terminated by ''' . $this->csv_settings['terminated'] . ''' enclosed by ''' . $this->csv_settings['enclosed'] . ''' lines terminated by ''' . $this->csv_settings['lines'] . ''' '. $ignore.';'));