2016-03-30 13 views
0

私は1万のデータを持つExcelテーブルを持っています。 次に、mysqlデータベースを構築して、Excelテーブル上に同じフィールドを持つテーブルを作成します。 しかし、私はPhpmyadminやPHPExcelの方法で約5分間データベースにデータを挿入すると、その500の内部サーバーエラーが常に表示されます。 このような状況の理由は何ですか?それは大量のデータなのでしょうか。 私のサーバーは、Apache + PHPの5.4n + MySQLの5.5.40 で使うCSV形式でExcelを変換し、読み取り/大量データのために内部サーバーエラーが発生しましたか?

+0

あなたのApacheログを確認してください。 – Mattia

答えて

0

(もちろん、私はまた、PHPとのmemory_limitにmax_excution_timeを変更)LOAD DATA LOCAL INFILE

私は例えば、私自身のコードを過ぎ/コピーが、あなたのニーズに

$ファイル名があなたのCSVのローカルパスである
$dataload = 'LOAD DATA LOCAL INFILE "'.$filename.'" 
       REPLACE 
       INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8" 
       FIELDS TERMINATED BY "\t" 
       IGNORE 1 LINES 
      '; 

$result = (bool)$this->db->query($dataload); 

(それを得るためにあなたがのdirname(FILE)を使用することができます)

0123彼を適応させます

このSQLコマンドは非常に速いです(すべてのCSVを追加/更新するにはわずか1秒または2秒です)

docを読んでください。もちろん、 "置き換え"作業のためにユニークインデックスをユーザーテーブルに設定する必要があります。たぶん、交換する必要はありませんが、挿入するだけで、この行は忘れてしまいました。

+0

ok、私は試しています。 – James

+0

Thks、bro.It works。別の質問をすることができますか?データベースから大量データを選択するので、「LOAD DATA LOCAL INFILE」のように高速にするためにsqlを使用できますか? ?そのような2つのテーブルまたは3つのテーブル?Thks。 – James

+0

問題が解決したかどうかチェックしてください。データを選択するには、通常のSQLクエリ(SELECT ... FROM ... WHERE ...など)を使用します。新しいアドバイスをしたい場合は、新しい質問をしてください。私はあなたを助けることができません。 – Xenofexs

関連する問題