我在 CodeIgniter 中执行插入查询时遇到问题。如果删除查询存在于我的模型中的同一类中,它会以某种方式执行,使我插入的那些在执行后被删除。
该过程是检查SKLCDE是否在$skills的数组中,如果没有,则将其从数据库中删除。
$this -> db -> select('SKLCDE');
$this -> db -> from('EmployeeSmartsDB');
$this -> db -> where('EMPNUM', $empnum);
$result = $this -> db -> get();
if ($result->num_rows() > 0){
foreach ($result->result() as $row){
if(!in_array($row->SKLCDE, $skills)){
$this->db->where('EMPNUM', $empnum);
$this->db->where('SKLCDE', $row->SKLCDE);
$this->db->delete('EmployeeSmartsDB');
}
}
}
如果新的 SKLCDE 尚未在数据库中,则插入查询会将其插入数据库中。
这是我的插入查询代码:
$this -> db -> select('SKLCDE, RECSTS');
$this -> db -> from('EmployeeSmartsDB');
$this -> db -> where('EMPNUM', $empnum);
$this -> db -> where('SKLCDE', $skills[$i]);
$result2 = $this -> db -> get();
$data = array(
'YRSEM' => '203101' ,
'EMPNUM' => '1234567' ,
'UNTCDE' => '1234' ,
'EMPCLS' => '1' ,
'EMPSTS' => '4' ,
'GRDLVL' => '0' ,
'SKLCDE' => '5S' ,
'QD1RTE' => '0' ,
'QD2RTE' => '0' ,
'QD3RTE' => '0' ,
'QD4RTE' => '0' ,
'RECSTS' => 'Y' ,
'SMTRTR' => '1234567',
'REMARK' => '' ,
'FTRNNG' => 'N'
);
$this->db->insert('EmployeeSmartsDB', $data);
编辑
这是我现在的代码,但仍然无法正常工作:
for($i=0; $i < count($skills); $i++){
$this -> db -> select('SKLCDE, RECSTS');
$this -> db -> from('EmployeeSmartsDB');
$this -> db -> where('EMPNUM', $empnum);
$this -> db -> where('SKLCDE', $skills[$i]);
$result2 = $this -> db -> get();
if($result2->num_rows() == 0){
$data = array(
'YRSEM' => '203101' ,
'EMPNUM' => '1234567' ,
'UNTCDE' => '1234' ,
'EMPCLS' => '1' ,
'EMPSTS' => '4' ,
'GRDLVL' => '0' ,
'SKLCDE' => '5S' ,
'QD1RTE' => '0' ,
'QD2RTE' => '0' ,
'QD3RTE' => '0' ,
'QD4RTE' => '0' ,
'RECSTS' => 'Y' ,
'SMTRTR' => '1234567',
'REMARK' => '' ,
'FTRNNG' => 'N'
);
$this->db->insert('EmployeeSmartsDB', $data);
}
}