想要从命令行

时间:2015-10-11 09:02:39

标签: php mysql csv cron

我已经建立了一个CMS网站,可以回复第三方的mysql记录。我打算通过CSV下载第三方记录。然后我想通过我的命令行使用Cron作业来更新我的mysql记录

我知道如何通过CSV手动上传到mysql,即:

LOAD DATA INFILE 'c:/tmp/discounts_2.csv'INTO TABLE discountsFIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 ROWS(title,@expired_date,amount)SET expired_date = STR_TO_DATE(@expired_date, '%m/%d/%Y');

但是,我不知道如何创建一个自动链接到命令行然后执行此功能的cron作业。

我想我想要的是指示我如何做到这一点。

UPDATE @fancyPants问了一个问题“我想让cronJob做什么?” 答案是这样的。我希望cronJob作业访问CSV文件(我以前下载过) 然后将所有这些值从CSV文件上传到mysql数据库

我知道将CSV转换为mysql的命令;

  

LOAD DATA INFILE'c:/tmp/discounts_2.csv'INTO TABLE discountsFIELDS   终止'''''''''''''''''''''1 1 1 1 1 1 1 1 1 1   ROWS(title,@ expired_date,amount)SET expired_date =   STR_TO_DATE(@expired_date,'%m /%d /%Y');

然而,我仍然坚持如何在命令行中执行cron作业,然后在cron到达命令行后如何执行上述命令

1 个答案:

答案 0 :(得分:0)

创建一个MySQL事件而不是一个cronjob。

使用

启用事件调度程序
SET GLOBAL event_scheduler = ON;

并创建一个这样的事件:

DELIMITER $
CREATE EVENT 
ON SCHEDULE EVERY 1 DAY
STARTS '2015-10-11 00:00:00'
DO
BEGIN
TRUNCATE TABLE discounts;
LOAD DATA INFILE 'c:/tmp/discounts_2.csv'INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 ROWS(title,@expired_date,amount)SET expired_date = STR_TO_DATE(@expired_date, '%m/%d/%Y');
END $
DELIMITER ;

就是这样。

详细了解语法herehere是有关它的更一般信息。