Codeigniter不会在页面中删除查询EXISTS时插入

时间:2013-08-31 08:37:33

标签: php sql sql-server codeigniter

我在CodeIgniter中执行插入查询时遇到问题。如果删除查询存在于我的模型中的同一个类中,它会以某种方式执行,使我插入的那些在执行后被删除。

过程是检查SKLCDE是否在$技能数组中,如果没有,它将在数据库中删除。

$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尚未存在于数据库中,则插入查询会在数据库中插入新的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);
}
}

1 个答案:

答案 0 :(得分:0)

试试这个......

$this->db-> where(array('EMPNUM'=> $empnum, 'SKLCDE' => $skills[$i]))->insert('EmployeeSmartsDB', $data);