• 締切済み

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

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

noname#23063
noname#23063
  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

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スクリプトに関する情報をお持ちの方、いらっしゃいましたら引き続きお待ちしております。

関連するQ&A

  • SQLファイルのインポートに関して

    SQLファイルに関して質問です。 先日不幸にもレンタルサーバーがクラッシュしてデータが消えてしまいました。 バックアップはしていたので、phpMyAdmin 2.6.2-rc1を使ってSQLをインポートして修復したいのですが インポートは2,048KBまでしか出来ない事をその時に知り そのせいでひとつだけのSQLファイルが容量オーバーでインポート出来ません。3.72MBほどあります。 他のSQLファイルは問題なくインポート出来ていますので通常操作は間違っていないかなとは思います。 ネットで調べると分割や圧縮する方法があるようなので SQLファイルをテラパットで開いて、分割してインポートしても zip形式をインポートしてもエラーが発生してうまくいきません。 どのように分割または圧縮すればいいのでしょうか? また他に良い方法があるのでしょうか? ここのサーバーはすでにphpMyAdminが用意されていて、それしか使用できないようになっています。 また容量もサイズの変更も出来ません。

    • ベストアンサー
    • MySQL
  • PHPスクリプトの設置に行き詰っています。

    PHPスクリプトの設置に行き詰っています。 ショップ構築のPHPスクリプトをレンタルサーバーに全てアップロードし、ドメイン/admin.phpを実行したのですが、 Warning: includeが数個(FCKeditor/FCKeditor/fckeditor.php) [function.include]: failed to open stream: No such file or directory in /home/sites/ と、Warning: mysql_pconnect() [function.mysql-pconnect]: Lost connection to MySQL server during query in /home/sites/heteml/users134/1/0/0/100oku/web/.htinc/_mysql.inc on line 76 Database error: Link-ID == false, connect failedLost connection to MySQL server during query MySQL Error: 0 ()とエラーになります。 fckeditor.phpのローカルの場所は/FCKeditor/FCKeditor/editor/fckeditor.phpです。 です。は/FCKeditor/FCKeditor/へ直接アップロードするとエラーは出ませんが、 白紙で何も表示されません。あと、設置マニュアルには 2- Setup the SQL Database using the "db.sql" file in phpmyadmin or via telnet.と書かれており、phpmyadminのコントロールパネルにログインはできたのですが、それ以降何をしていいやらさっぱりわかりません。サーバーはphpにも対応しています。 html,CGIの設置は大体わかりますが、プログラミングはcobolしか分かりません。 もうひとつ似たようなシステムのスクリプトも有るのですが、 某サイトでSHOHOのプログラマーの方に時給2千円で設置を依頼し、adminのコントロールパネルは 完成出来たのですが、index.phpが表示されず、原因不明という事で途中放置放置されてしまっています。

    • 締切済み
    • PHP
  • PHP4.3.10

    これまでに使っていたPHP4.2.3だと、 phpMyAdmin使用時にバグがあるということなので、 4.3.10を入れなおしてみました。 phpMyAdminは動くようになったのですが、今度は今までできていた、 ファイルのアップロードができなくなってしまいました。 php.iniの設定で file_uploads = On upload_max_filesize = 2M という設定はきちんとしてあります。 プログラムに問題があるのかな?と最初思っていたのですが、 レンタルしているサーバーでテストしたところ、普通にアップロードできます。 レンタルサーバーのPHPは4.2.3です。 自分として考えられる原因は、使用しているApacheのバージョンが古いのかな? というようなことなのですが(バージョンは1.3.27です。) 正直言って、よく分かりません。 もしApacheが問題なら、バージョンを上げたいとも思うのですが、 なるべく安定したものがいいと思っています。 2.0.50は手元にあるのですが、これでいいのかどうか…。 それとも他の設定がまずいのか…。 誰か知っている方おられましたら、ご回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとSQLについて

    PHPは全く分からない状態からの質問です。 旧サーバー(アルファメール)から新サーバー(xbit)に移行の際ディレクトリごと移動しました。 MYSQLは調べながらphpMyAdminを使い、(旧サーバーには既に存在しておりそれを利用。バージョン2.10.3)エクスポート。新サーバーに(バージョン4.1.13)インポートしました。 データーベース・ユーザー名・パスワードはすべて同一にPHPの動作はうまくっているようなのですが、データーベースから引っ張ってきた文字のみがすべて???表示になってしまいます。 文字コードをいろいろいじってみたのですが、直りません。 どこをいじればいいでしょうか? 文字コードはEUC-JP、sqlはujisになっています。

  • My Sqlのデータベースを扱うサブルーチン

    はじめてMy SQLで開発しようと考えています。 いままでテキストファイルでした。 &reamfile; foreach @txt{  処理 } &writefile; とテキストファイルの読み込み書き込みはすべてサブルーチンを 利用していましたので楽でした。 これに代わるサブルーチンで開発することは可能でしょうか? 今後の流れは &データベース接続 ↓ &読み込み ↓ &データベース切断 ↓ 処理 ↓ &書き込み というサブルーチンであっていますよね? もしできましたらそんな便利なサブルーチンのスクリプトを 教えてください。 また、テーブルの作成はサーバーのPhpMyAdminでもできるんですが、 Perlスクリプト&SQLで作成しておいた方がよいでしょうか?

  • ACCESSからSQLスクリプトを実行する方法

    SQL Serverのスクリプト生成で作成した複数のSQLスクリプトファイル(.sql)を ACCESSからSQL Serverに接続して実行したいのですが どのようにすれば出来るでしょうか? バッチを使えば出来そうですが、今回はACCESSのみで実現できればと思っています。 ※ACCESS2003とSQL Server2000を使用しています。 よろしくお願いします。

  • 拡張子がhtmlでもphpスクリプト実行したい

    webサーバがApacheの、レンタルサーバーでホームページを作っております。フレームの代わりにphpのincludeを使ってメニュー等を表示しています。しかし最終的に表示されるページの拡張子がphpでないと、きちんと表示されません。拡張子がhtmlでもphpスクリプトが実行されるようにしたくて、色々調べていたのですが、それらしき方法を発見しました。 Apacheで言えばhttpd.confの AddType application/x-httpd-php .php というところを例えば AddType application/x-httpd-php .php .html にするだけで、*.phpでも*.htmlなファイルであってもそこに埋め込まれているPHPスクリプトは実行されるようになる。 …とあったのですが、何をどう加えるか、もしくは変えればいいのかサッパリです。 もっとこっちの方が簡単だ、など、詳しい方いらっしゃいましたら、どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP4対応のphpmyadminのダウンロードについて

    レンタルサーバーにMySQLでデータベースを立ち上げようと考えているのですが、サーバーがPHP5に未対応であるため、最新のphpmyadminの設定ファイルをサーバーに入れても、phpmyadminが立ち上がらず、PHP5の環境を要求される画面が表示されてしまいます。 phpmyadminの古いバージョンをダウンロードできるサイトを探しているのですが、見当たらなくて困っています。ご存知の方がいらっしゃいましたら、教えて頂けないでしょうか? ちなみに、サーバー側の動作確認は、phpMyAdmin 2.11.2.2までとなっています。

    • ベストアンサー
    • PHP
  • PHPでデータベースにアクセスするには?

    データベース初心者です。 レンタルサーバーはロリポップを使っています。 これからphpMyAdminを使ってデータベースを作ることが出来たらと考えております。先ずはその流れを把握しておきたいと思いましてPHPファイルからの接続を成功できたらと考えましたが、PHPについても知識に乏しくどのような記述にすればphpMyAdminに接続できるのかというところで止まってしまってます。 どなたかお詳しい方がいらっしゃいましたらご指導いただけたら幸いです。よろしくお願いいたします。 以下は他のサイトで見つけたのですが接続できないようです。 //接続 $connect = mysql_connect($server,$user,$pw); //データベース選択 mysql_select_db($database,$connect); //sql実行 $result = mysql_query($sql); //データ取得 mysql_data_seek($result,0); $a=mysql_fetch_array($result,MYSQL_NUM);

    • 締切済み
    • PHP
  • php上でSQL文を実行した結果と、phpMyAdminで実行した結果が違う

    ☆実行環境 php5.3 MySQL4.0 $sql="SELECT * FROM テーブル名 WHERE フィールド名 like '".$変数."%'" php上で上記のようなSQL文を実行させようとしています。 テーブルには該当する行がいくつかあるのですが、ページ上では1行も表示してくれません。 mysql_num_rowsの返り値を見ると0になっています。 SQL文の組み立てがおかしいのかと思い、phpMyAdmin上でSQL文を実行すると、 きちんと欲しい内容が表示されます。 とするとphpでのSQL文の書き方がおかしいのだと思います。 どこかおかしいのかご教授ください。

    • ベストアンサー
    • PHP