3

タイマーでクエリを実行しようとしています(1日1回同時に)。

クエリは毎回同じです。Excel からデータを取得し、コンピューターのデスクトップに保存します。次にfile.csv、PHPmyAdmin で UPDATE します。

phpmyadmin には、インターフェースから自動化するオプションがありません。誰かが無料でこれを達成するのを手伝ってくれませんか?

4

3 に答える 3

4

-------------------更新(より良い回答-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'"

ノート:

  1. これにより、スケジューラーにパスワードが表示されます。
  2. mysqlがパスにない場合(スケーダラーが実行されるパス)、行にパスを指定します。疑わしい場合は、「c:\ progamfiles(x86)\ mysql \ bin\mysql」またはmysql.exeが配置されている場所に配置してください
  3. -uとユーザー名の間、および-eとコメントの間にはスペースがありますが、-pとパスワードの間にはスペースがありません。

詳細:-Google for tech Scheduler(Windowsのフレーバーを追加)https://www.google.com.au/search?q=using+windows+task+scheduler-MySQL コマンドライン「execute」(およびその他のオプション)http://dev.mysql.com/doc/refman/5.5/en/mysql-command-options.html#option_mysql_execute

于 2012-12-19T23:31:49.227 に答える
3

私が知っていることからphpmyadminからそれを行う方法はありませんが、スクリプトから行うことができます。これにより、Linuxでcronジョブを作成するか、Windowsでスケジュールされたタスクを作成して、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で実行して、必要なテーブルに必要なファイルを取得できます。

于 2012-12-19T22:33:56.117 に答える
2

この操作を実行するスクリプトを実行するように Cronjob をスケジュールする方がよい場合があります。Excel ファイルを調べてから MySQL に入力する PHP スクリプトを作成できます。

http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/ http://code.google.com/p/php-エクセル/

または、MySQL のイベント スケジューラを使用して、特定の操作をスケジュールすることもできます。ただし、アプリケーションの場合、Excel スプレッドシートからの読み取りを処理するには、PHP または別のスクリプト言語の方が適している場合があります。

例:

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); 

http://dev.mysql.com/doc/refman/5.1/en/events.html

于 2012-12-19T22:21:22.277 に答える