ここから本文です

XAMPP上のMySQLのデータベースのデータ(id,no,date,yadomeiの4項目で、行数60のデ...

kan********さん

2019/3/1822:22:31

XAMPP上のMySQLのデータベースのデータ(id,no,date,yadomeiの4項目で、行数60のデータ)を、

CORESERVER.JP(バリューサーバー)上のMySQLのデータベースに毎朝上書きしたいのですが、良い方はないでしょうか?
idもnoも1から60までの連番で同じ値です。

現在は、XAMPP上のデータベースをsql形式でエクスポートして、CORESERVER.JP(バリューサーバー)上のデータベースを削除して、CORESERVER.JP(バリューサーバー)上でsqlファイルをインポートすることによって対応しています。

なんで、そんな面倒な事をするかというと、PHPで楽天APIのデータを60件取得するのに楽天側の処理時間がかかり結果的に20秒ほどかかるので、CORESERVER.JP(バリューサーバー)では動作が途中でストップされてしまうのです。
そのため、その処理をXAMPP上で行い、結果をCORESERVER.JP(バリューサーバー)のMySQLに送って、ホームページ上(PHP)から参照するという事をしています。

できれば、XAMPP上のMySQLから、あるフォーマット(どのフォーマットが適しているか分からない)でエクスポートして、そのファイルをPHPのプログラムでCORESERVER.JP(バリューサーバー)のMySQLに上書きできれば良いと思います。

CORESERVER.JPのMySQLにnoの1から順に上書きする簡単な命令ってあるのでしょうか?
PHPで実際動作させたのは、noを検索して同じnoのデータを1つずつUPDATEするという方法でしたが、最初からno行目のデータをUPDATEするという命令はないのでしょうか?。

よろしくご教授願います。

閲覧数:
75
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2019/3/1823:58:33

drop table/create table文込みでSQL形式でエクスポートして(coreserverの)phpMyAdminからインポートするのが一番楽っちゃ楽でしょうね。
ローカルのxamppのphpMyAdmiんで、テーブルを選択した状態でエクスポートタブに遷移してから出力形式をSQL、詳細の設定でDROP TABLEとCREATE TABLEにチェックすれば(エクスポートされたSQL文を見れば)わかると思います。


(以下、phpスクリプトでやるならという前提で)
CSV形式ででも落としておいて、phpスクリプトでupdate文をprepareしておいてからfgetcsvで読み込むループ内で(データを組み立てて)executeするのではダメですかね?
truncate tableしてauto_incrementをリセットしてからinsertでもいいんでしょうけど、それよりは(既存だとわかっているなら)updateの方が素直かと思います。

  • 質問者

    kan********さん

    2019/3/1906:33:09

    御教授ありがとうございます。
    SQL形式でエクスポートして(coreserverの)phpMyAdminからインポートするのが一番楽なのですか。
    結構手間なんですよね。
    xampp上ではクリック1つで作業が完了してたので、ヤッターと思っていたのですが、ぬか喜びでした。

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/3/25 06:29:07

投稿していただいた皆様のアドバイスがとても役立ちましたが、実際に運用する事になった方法に最も近い提案をいただいたshi********の投稿をベストアンサーに選ばせていただきました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

mzg********さん

2019/3/1921:01:17

本番サーバー側で一挙に取得するのが時間制限に引っかかるなら、cron実行で「一件取得してはファイルに追加」の作業を、数分おきに実行して、60件たまったら、mysqlテーブルデータの更新 という方法も有ると思う。取得時刻があんまりずれるとまずいなら使えないけど。
一応 CORESERVER.JPのどのプランでも cron 機能は使えるみたいだし。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

nor********さん

2019/3/1823:51:32

> 最初からno行目のデータをUPDATEするという命令はないのでしょうか?。

はないですが作業用テーブルは持てないのですか。
作業用テーブルにload data infile で取り込んで本番テーブルとidかnoでJOINしてupdateできると思いますが。
結合するキーが主キーとかなら。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる