MySQL แทรกขีดจำกัด?

ฉันมีสคริปต์ PHP ที่รับ csv และนำเข้าลงในตาราง mysql ฉันได้ทำการทดสอบไม่กี่ครั้งและพบว่าสคริปต์แทรกได้ครั้งละ 999 แถวเท่านั้น มีข้อจำกัดดังกล่าวหรือไม่ และถ้ามี ที่ไหน? MySql หรือ PHP? ตัวอย่างเช่น หากฉันใช้ไฟล์ csv ที่มี 2,500 แถว ระบบจะแทรกเฉพาะ 999 แถวแรกเท่านั้น ฉันรู้สึกงุนงง. ฉันได้ตั้งค่าพารามิเตอร์ php ต่อไปนี้เป็นค่าที่ค่อนข้างดี:

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

ฉันไม่แน่ใจว่าอะไรทำให้เกิดพฤติกรรมนี้ ฉันรู้สึกว่าแบบฟอร์ม html ถูกตัดออกแม้ว่าฉันจะตั้งค่า post_max_size เป็นจำนวนมากก็ตาม ฉันพูดแบบนี้เพราะเมื่อฉันใส่ปุ่มตัวเลือกไว้ที่ส่วนท้ายของรูปแบบยาว ปุ่มตัวเลือกนั้นจะไม่ถูกส่งผ่านไปยังอาร์เรย์ $_POST ในขั้นตอนถัดไป


แก้ไขแล้ว

โอเค ขอบคุณที่พยายามช่วย ฉันกำลังขุดบันทึกและพบปัญหา อย่างที่ฉันสงสัย $_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')

แม้ว่าฉันจะเพิ่ม post_max_size ใน php แล้ว แต่ก็ยังไม่เพียงพอ ดังนั้นฉันต้องเปลี่ยนพารามิเตอร์ทั้งสองนี้ใน /etc/php5/conf.d/suhosin.ini

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

ฉันเพิ่มมูลค่าและมันก็ได้ผล นำเข้าทั้งหมดประมาณ 3,000 แถวแล้ว


person Sparctus    schedule 17.02.2012    source แหล่งที่มา
comment
โปรดแสดงรหัสให้เราทราบ สาเหตุส่วนใหญ่อาจเนื่องมาจากวิธีที่คุณเข้ารหัสการนำเข้าของคุณ มีการจำกัดการแทรกในรูปแบบที่ไม่ขยาย แต่ผู้คนไม่ค่อยใช้ไวยากรณ์นั้น...   -  person Mathieu Dumoulin    schedule 18.02.2012
comment
ค่าการเพิ่มอัตโนมัติสูงสุดหรือขนาดฟิลด์สูงสุดของการเพิ่มอัตโนมัติคือเท่าใด สคริปต์หยุดอย่างรวดเร็วหรือไม่? หากคุณรันผ่านการวนซ้ำคุณจะได้รับ mysql_error() หรือไม่   -  person MyStream    schedule 18.02.2012
comment
เพิ่มรหัสบางส่วน มันยากมากที่จะพูดอะไรโดยไม่เห็นรหัส   -  person Tarandeep Gill    schedule 18.02.2012
comment
สิ่งสำคัญคือต้องเปลี่ยนทั้ง suhosin.post.max_vars & suhosin.request.max_vars ให้เป็นค่าที่เหมือนกัน - การเปลี่ยนค่าสำหรับ post เท่านั้นจะยังคงให้ข้อผิดพลาด POST variable limit exceeded เหมือนเดิมไม่ว่าคุณจะตั้งค่าไว้สูงแค่ไหน   -  person Stuart Cardall    schedule 30.03.2018


คำตอบ (1)


ฉันเดาว่าไม่มีการจำกัดการนำเข้า CSV แต่ฉันจะใช้สิ่งนี้ในการนำเข้าข้อมูลจาก CSV

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