我正在开展一个项目,要求我预测一段时间的材料使用情况并生成摘要。我能够生成预测,可以长达1200个。但是,为了生成摘要,记录需要存储在数据库中,可以将它们提取到汇总。问题是:当单击一个按钮生成摘要时,代码只能工作,当总行数<= 200.I检查了代码时,搜索StackOverflows,甚至更改max_allowed_packed = 999MB。但是它仍然没有插入到Database.See下面的代码,并且在我没有获得解决方案的情况下进行了搜索。 请参阅插入代码:
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,但没有解决方案满足我的需要,因此这个问题。
答案 0 :(得分:0)
我编写的代码完美无缺,所有需要做的就是更改服务器上的某些参数。我在文件所在的目录中创建了一个新的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条记录。
请注意,只要您拥有处理请求的资源,就可以在本地/实时服务器上完成此操作。我希望有一天能帮助别人。 谢谢大家。