ฉันมีสคริปต์ 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 แถวแล้ว
suhosin.post.max_vars
&suhosin.request.max_vars
ให้เป็นค่าที่เหมือนกัน - การเปลี่ยนค่าสำหรับpost
เท่านั้นจะยังคงให้ข้อผิดพลาดPOST variable limit exceeded
เหมือนเดิมไม่ว่าคุณจะตั้งค่าไว้สูงแค่ไหน - person Stuart Cardall   schedule 30.03.2018