2011-10-20 9 views
4

私はほぼ100MBのexample.sqlファイルを持っています。 (実際に別のデータベースからデータをエクスポートするファイル)PHPでmysqlスクリプトファイルを実行するには?

私は、このファイルをアプリケーションのあるインタフェースから実行する機能をユーザに与えたいと考えています。 どうすればいいですか?私はそれを単純なテキストファイルとして扱うべきですか?どちらか早い方法がありますか?

つまり、phpMyAdminのインポート機能と同じ機能を追加したいと思います。

PHPclass.orgのクラスを参考にしていただければ幸いです。

+0

ユーザーがそのファイルをアップロードして、そのファイルをmysqldumpなどにプッシュします。 – user973254

答えて

4
function import_file($filename){ 
    if ($file = file_get_contents($filename)){ 
     foreach(explode(";", $file) as $query){ 
      $query = trim($query); 
      if (!empty($query) && $query != ";") { 
       mysql_query($query); 
      } 
     } 
    } 
} 

ファイルは、ファイルのアップロードを作成し、クエリ

+0

私はちょうど試していますが、最善の選択肢のようです。受け入れられた答えとして選択することに戻ります:) –

+3

実際のデータのいずれかに ';'が含まれていると、これは隠されてしまいます。しかし、素早く「汚い」ためには、「十分に良い」 –

+0

@MarcB:うわー、この状況については考えていませんでした。その場合、考慮すべきことがたくさんあります。 – genesis

2

の端よりもどこかセミコロン;が含まれている場合ただし、この機能が正しく動作しません

import_file("files/files.sql"); 

で呼び出すことができますフォームを使用して、信頼できるユーザーがファイルをサーバーにアップロードできるようにします。その後、PHPからmysqlコマンドラインツールを呼び出して、データベースにデータをインポートします。インポートされたデータ内に引用符で囲まれたセミコロンがある場合、explode( ";"、...)を試みることで失敗します。

関連する問題