我正在尝试对计时器执行查询(同时每天一次)。
每次查询都是一样的。我从excel中获取数据并将其保存到我的计算机桌面上。然后使用PHPmyAdmin从file.csv
更新。
在phpmyadmin中,我没有看到任何从界面自动化的选项。有人可以帮我免费完成这个吗?
答案 0 :(得分:2)
您可能最好安排一个Cronjob来运行脚本来执行此操作。 您可以创建一个PHP脚本来检查Excel文件,然后将其输入MySQL。
http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/ http://code.google.com/p/php-excel/
或者,您可以使用MySQL中的事件调度程序来安排特定操作。但是,对于您的应用程序,PHP或其他脚本语言可能更适合处理从Excel电子表格中读取。
示例:
CREATE EVENT import_data
ON SCHEDULE AT '2006-02-10 23:59:00'
DO LOAD DATA LOCAL INFILE '/importfile.csv' INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1, filed2, field3);
答案 1 :(得分:2)
从我所知道的phpmyadmin无法做到这一点,你可以从脚本中做到这一点,这将允许你在linux中创建一个cronjob或在Windows中创建一个schedueled任务,将CSV导入到你的数据库中。 phpMyAdmin无论如何都会运行这样的命令。
您正在寻找的SQL命令是
load data ' . LOCAL_DATA . '
infile "/path_on_disk/file.csv"
into table `table_name` ' . $details['import_options'] . '
(brand, sku, name, retail_price, url, image, short_category, stock_availability, freight_cost, retail_price, currency);');
LOCAL_DATA - 可以为空或字符串“LOCAL”。测试它是如何为你运行的,对于我的计算机我需要LOCAL,对于服务器我不需要。
$ details ['import_options'] - 可以是很多东西,同样最好的方法是测试它是如何为你的文件运行的。我过去曾用过
fields terminated by "," lines terminated by "\n" IGNORE 1 LINES
或
fields terminated by "\t" enclosed by "\"" lines terminated by "\n" IGNORE 1 LINES
或
fields terminated by "," optionally enclosed by "\"" lines terminated by "\n" IGNORE 1 LINES
你可以在php中运行它,以便在你想要的表格中获得你想要的文件。
答案 2 :(得分:2)
-------------------更新(更好的答案 - 2014年1月)--------------------
您可以使用MySQL甚至调度程序(http://dev.mysql.com/doc/refman/5.1/en/events.html)。允许您在MySQL中设置在指定时间运行查询的事件。
手册中的样本
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
UPDATE myschema.mytable SET mycol = mycol + 1;
------------------原始答案(2012年12月)------------------
最简单的方法是运行mysql命令的CRON作业或Windows任务计划程序作业:
mysql -u [username] -p[password] -e "UPDATE from 'filecsv'"
注意:
更多阅读: - Google for tech scheduler(添加你的窗口风格)https://www.google.com.au/search?q=using+windows+task+scheduler - MySQL命令行“执行”(以及其他选项)http://dev.mysql.com/doc/refman/5.5/en/mysql-command-options.html#option_mysql_execute