繁体   English   中英

使用PHP-Mysqli无法在数据库中插入超过180条记录

[英]Cannot Insert More than 180 Records into Database Using PHP-Mysqli

我正在开发一个项目,要求我预测一段时间的材料使用情况并生成摘要。我能够生成预测,可以长达1200rows。但是,为了生成摘要,记录需要存储在数据库中,可以将它们提取到汇总。问题是:当单击一个按钮生成摘要时,代码只能工作,当总行数<= 200时。我检查了代码,搜索StackOverflows和甚至更改max_allowed_pa​​cked = 999MB。但是它仍然没有插入数据库。请参阅下面的代码并亲切地协助,因为我搜索时没有得到解决方案。 在此输入图像描述 请参阅插入代码:

if(isset($_POST['exportBtn']) && isset($_POST['sflt'])){
        //$arr = array();
        foreach($_POST['sflt'] as $key => $value) {
         set_time_limit(0);
         $eflt = mysql_prep($_POST['sflt'][$key]);
         $emodel = mysql_prep($_POST['smodel'][$key]);
         $eengine = mysql_prep($_POST['sengine'][$key]);
         $eloc = mysql_prep($_POST['sloc'][$key]);
         $estye = mysql_prep($_POST['sstye'][$key]);
         $ensvr = mysql_prep($_POST['snsvr'][$key]);
         $eehd = mysql_prep($_POST['sehd'][$key]);
         $epname = mysql_prep($_POST['spname'][$key]);

         $inExp = mysqli_query($con,"INSERT  INTO tab_forecast(fltno,model,engine,loc,serviceType,nextSvr,usageHr,partName)VALUES ('$eflt','$emodel','$eengine','$eloc','$estye','$ensvr','$eehd','$epname')");
         }//End for-each loop

请注意,我还尝试创建单个insert语句而不是逐个插入,但结果仍然相同 - 不将所有记录插入数据库。 我的数据库引擎设置为InnoDB,但结果相同。 请问,我还能做什么,或者有更好的方法来解决这个问题。 注意,我有搜索SO,但没有解决方案满足我的需要,因此这个问题。

我写的代码完美无缺,所有需要做的就是更改服务器上的某些参数。 我在文件所在的目录中创建了一个新的ini文件。通常,这可以是.user.ini或php.ini文件。 以下参数设置为覆盖默认设置:

memory_limit = 1G
max_execution_time = 300
max_input_time = 300
post_max_size = 1G
max_input_vars = 10000
file_uploads = -1
max_file_uploads = 35
upload_max_filesize = 1G

,一旦完成。 您可以通过在测试脚本中运行echo phpinfo()来确认更改来验证。一旦完成,我就可以插入超过500行。 事实上,更改max_input_time = -1和max_input_vars = 50000,我能够插入超过1000条记录。

请注意,只要您拥有处理请求的资源,就可以在本地/实时服务器上完成此操作。 我希望有一天能帮助别人。 谢谢你们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM