【问题标题】:Data is being added infinitely or it does not stop being added, how to prevent this? PHP CodeIgniter数据被无限添加或不断添加,如何防止? PHP 代码点火器
【发布时间】:2022-01-28 11:26:41
【问题描述】:

我在向我的数据库添加数据时遇到问题,发生的情况是它正在无限地添加或不停地添加。我已经尝试过使用break,但问题仍然存在。有没有办法防止这种情况发生?

foreach ($csvData as $key => $value) {                      
        if(isset($studentIDFromDB[$value['studentID']])){
            $updateFields[$key] = array(                                
                'studentID'             => $value['studentID'],
                'programType'           => $value['programType'],
            );
        }else{
            $insertFields[$key] = array(
                'studentID'             => $value['studentID'],
                'programType'           => $value['programType'],                           
            );
        }
}

if(isset($updateFields)){
    $chunk1 = array_chunk($updateFields,100);
        for($i=0;$i < count($chunk1);$i++) {
            $this->DBLogic->updateBatchRecordMultipleConditionz($chunk1[$i]);
            $this->DBLogic->addBatchRecord('tbl_tt_academicinfo', $updateFields);
            break;
         }
}

【问题讨论】:

  • $updateFields 的总数是多少

标签: php codeigniter codeigniter-3


【解决方案1】:

我认为问题在于,您每次迭代都调用“addBatchRecord”,并将“updateFields”作为值传递。它包含多少条目?它被调用 count($updateFields) / 100(块大小)次。

for($i=0;$i < count($chunk1);$i++) {
    $this->DBLogic->updateBatchRecordMultipleConditionz($chunk1[$i]);
    $this->DBLogic->addBatchRecord('tbl_tt_academicinfo', $chunk1[$i]);
}

【讨论】:

  • 您好,我可以在参数中包含$updateFields 吗?不过,我的数据需要 updateFields,当我将其替换为 $chunk1[$i] 时,数据不会添加。
  • 我也应该删除break 吗?
  • 如果您删除中断,您将只处理 100 个条目(块大小)。 addBatchRecord 内部发生了什么?
  • Giler - 先生您好,addBatchRecord 插入批处理数据。
  • public function addBatchRecord($table, $fields){ $this-&gt;db-&gt;insert_batch($table, $fields); }
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2014-01-14
相关资源
最近更新 更多