2012-02-17 9 views
1

私はcsvをとり、それをmysqlテーブルにインポートするPHPスクリプトを用意しています。私はいくつかのテストを行っており、スクリプトは一度に999行しか挿入していないことが分かった。そのような制限はありますか?あれば、どこで? MySQLまたはPHP?たとえば、2500行のcsvファイルを使用した場合、最初の999文字だけが挿入されます。私はうんざりしている。以下のPHPパラメータをかなり寛大な値に設定しました:MySQLの挿入制限?

php_value upload_max_filesize 999M 
php_value post_max_size 999M 
php_value max_execution_time 900 
php_value max_input_time 900 

この現象の原因はわかりません。私はpost_max_sizeを膨大な数に設定したにもかかわらず、htmlフォームが途切れていると感じました。長いフォームの最後にラジオボタンを置くと、そのラジオボタンが次のステップで$ _POST配列に渡されないので、これを言います。


[OK]をみんな、支援しようとしてくれてありがとうを解決しました。私はログを掘り下げて問題を見つけました。私が疑っていたように、$ _POST配列は途切れていました。私は、PHPのログを見て、このエントリを見つけました:

Feb 17 17:12:54 workpc suhosin[3895]: ALERT - configured POST variable limit exceeded - dropped variable 'selected[]' (attacker '192.168.0.175', file '/var/www/html/sandbox/index.php') 

私はそれが十分ではなかった、PHPでpost_max_sizeのを増加していたにもかかわらず。したがって、私は値を増加し、それが働いた/etc/php5/conf.d/suhosin.ini

suhosin.post.max_vars = 1000 
suhosin.request.max_vars = 1000 

にこれら2つのパラメータを変更する必要がありました。すべて3000行がインポートされました。

+2

からデータをインポートするために、このようなものを使用します。拡張されていない形式では挿入の制限がありますが、その構文を使用する人はほとんどありません。 –

+0

auto_incrementの最大値またはauto_incrementの最大フィールドサイズはどれくらいですか?スクリプトはすぐに停止しますか?ループを介して実行すると、mysql_error()が得られますか? – MyStream

+0

コードを追加してください。コードを見ずに何も言わないのは本当に難しいです。 –

答えて

2

私は、CSVの輸入にそのような制限はありませんと思いますが、私は、これはおそらく、あなたのインポートをコード化する方法が原因で、私たちにいくつかのコードを表示してくださいCSVを

LOAD DATA INFILE 'mydata.csv' INTO TABLE YOUR_TABLE FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n';