• 締切済み

Web上にあるSQLファイルを実行するPHPスクリプト

レンタルサーバを借りてCMSを運営しているのですが、引越しする必要がでてきました。 新しいサーバはデータベースにはそのレンタルサーバが設置したPHPMyAdminか、契約したサーバの領域内にあるPHPファイルからしか接続できず、そのPHPMyAdminは2Mまでのファイルしか読み込めません。 200Mちょっとあるデータベースを分割して読み込もうにも、画像をデータベースに取り込んでいるCMSなので、1つのテーブルだけで2Mを越えるものもあって、全部をPHPMyAdminで読み込むことはできません。 そこで、Web上にアップロードしたSQLファイルを実行できるPHPスクリプトを探しています。 そういったスクリプトをご存知の方、いらっしゃいましたら情報をお願いします。

みんなの回答

noname#30334
noname#30334
回答No.2

php.iniのデフォルト設定で、 upload_max_filesize = 2M というものがあります。 > 契約しているレンタルサーバのファイルのサイズ制限は、 > 1ファイルあたり5M以下となっているので、 との事ですが、それはFTPでファイルを転送の場合ではないですか? phpでファイルをUPLOADする場合、2MBを超えていると 上記のphp.iniの設定のために、失敗しているかもしれません。 (phpmyadminは、使った事が無いので外してるかもしれませんが) この設定を変更できるのは、サーバー管理者だけなので、 レンタルサーバーの管理者に問い合わせるしかないですね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

PHPにもファイル転送の容量がありますし、POSTデータのファイル制限も ありますので、正直200MをHTTPベースですんなり移行するのは かなりきびしいことだと念頭においてください。 (容量制限は設定ファイルである程度緩和できますが、BOM攻撃を受ける可能性を 考えると容量制限しておく必要はかならずあると思います) 単純に考えるとFTPでデータをアップロードしておいて、 それをコマンドラインで取りこむか、PHPでfread系の関数で 読みこみながらSQLに流しこむことになると思います。 もしファイル容量制限をうまくコントロールできる自信があるのなら フォームを使ってアップロードする方法もないことはないので 以下を参考になさってください。

参考URL:
http://www.php.net/manual/ja/features.file-upload.php
noname#23063
質問者

お礼

200M全部を取り込もうとしているのではなく、1つのデータ自体が2Mを越えるもののみなんとかして読み込もうとしております。 200M超のファイルは1.8Mくらいずつに分割して、1つずつインポートしました。残っているのは、1行が2Mを越えるデータ4行です。 2M超の画像の情報?のデータベースのエクスポートファイルは、1点ごとに分けました。 契約しているレンタルサーバのファイルのサイズ制限は、1ファイルあたり5M以下となっているので、2Mのファイル4点は、(望ましくないかもしれませんが)問題ありません。アップロードできることも確認しております。 > 画像をデータベースに取り込んでいるCMSなので、1つのテーブルだけで2Mを越えるもの > もあって、全部をPHPMyAdminで読み込むことはできません。  ↓ > 画像をデータベースに取り込んでいるCMSなので、1行で2Mを越えるものもあって、全 > 部をPHPMyAdminで読み込むことはできません。 と書いたほうがわかりやすかったでしょうか? 誤解を与える書き方をしてしまって申し訳ございませんでした。 質問と平行して自作もやっておりますが、素人ですのでいつできるのかわからないので… (検索した結果、parse_mysql_dump()という関数を使えばいいらしいということまでたどり着いたのですが、もしかしてまったく違うのでしょうか?) 2M超のSQLファイルを実行するPHPスクリプトに関する情報をお持ちの方、いらっしゃいましたら引き続きお待ちしております。