【发布时间】:2022-01-24 14:37:50
【问题描述】:
我目前的问题是,当我使用update_batch()时,所有数据都在一次更新,有没有办法只更新最后一个数据?
我每学期都会更新成绩,这就是我需要在本学期更新最新成绩的原因。但是,每当我更新成绩时,最新的更新也会更新我学期中以前的成绩,这就是它被覆盖的原因。因此,我只想更新本学期的最新成绩。我还用update_batch更新了多条记录,我这样做错了吗?
这是我的控制器:
$schoolYear = $csvData[0]['schoolYear'];
$semester = $csvData[0]['semester'];
$studentIDFromDB = $this->importSISAcademicInformationGetStudentIDFromDB($schoolYear, $semester);
foreach ($csvData as $key => $value) {
if(isset($studentIDFromDB[$value['studentID']])){
$updateFields[$key] = array(
'studentID' => $value['studentID'],
'programType' => $value['programType'],
'level' => $value['level'],
'sectionDescription' => $value['sectionDescription'],
'schoolYear' => $value['schoolYear'],
'semester' => $value['semester']
);
}
}
if(isset($updateFields))
$this->DBLogic->updateBatchRecordMultipleCondition('tbl_tt_academicinfo', $updateFields, 'studentID', array('schoolYear' => $schoolYear, 'semester' => $semester));
这是我的模型:
public function updateBatchRecordMultipleCondition($table, $fields, $criteria1, $criteriaN){
$this->db->where($criteriaN);
$this->db->update_batch($table, $fields, $criteria1);
}
【问题讨论】:
-
@RaoDYC 我之前尝试过
inser_id(),但它仍然会产生相同的输出 -
我需要更新的最后一个数据:最后一个数据是什么?数组中的最后一组?插入数据库的最后一个值?数据库中最高的id?请使用此“详细信息”编辑您的问题。 AND:如果您只想更新 1 个记录集,为什么要使用 update_batch?
-
@Vickel - 你好,美好的一天,我已经更新了我的问题,请看一看,希望它能回答你的问题。如果您对我的回答仍有疑问,请告诉我,感谢您抽出宝贵时间。
-
您不能使用 update_batch,因为它不允许多个 where 条件。它旨在通过单个属性进行更新,这通常是一个键。当您应该插入新成绩时,为什么要从电子表格“更新”,从而覆盖现有成绩?电子表格包含什么?
标签: php codeigniter codeigniter-3