【问题标题】:Codeigniter consecutive queries creates undefined indexesCodeigniter 连续查询创建未定义的索引
【发布时间】:2013-09-12 07:50:14
【问题描述】:

我遇到了连续查询的问题。我不知道 CodeIgniter 是否与它有关。如果发生了什么事,谁能告诉我?

鉴于:
$Attendees 是一个员工编号数组。
$data 是一个来自 $_POST 的数组
$data ['quads'.trim($attendees[$i])] - 我正在尝试使用quads1234567 的索引,其中数字是员工编号。

for($i=0; $i < count($attendees)-1; $i++){

        $data_update = array(
            'QD'.$data['quads'.trim($attendees[$i])][0].'RTE' => 3 ,
            'FTRNNG'  => 'N' ,
        );

        $this->db->where('TRNSRS', $data['series']); 
        $this->db->where('EMPNUM', trim($attendees[$i])); 
        $this->db->update('EmployeeSmartsDB', $data_update); 

        $data = array(
           'YRSEM'  => '201301' ,
           'EMPNUM' => trim($attendees[$i]) ,
           'UNTCDE' => $data['unitcode'] ,
           'TRNTYP' => $data['training_type'],
           'TRNSRS' => $data['series'] ,
           'SKLCDE' => $data['skillcde'] ,
           'ACTDTE' => '20130912' ,
           'ACTTME' => '1534' ,
           'EMPRTE' => $data['quads'.trim($attendees[$i])][1],
           'QUDRNT' => $data['quads'.trim($attendees[$i])][0],
           'RMARKS' => $data['remarks'.trim($attendees[$i])],
        );

        $this->db->insert('EmployeeLedgerDB', $data); 

    }

现在的情况是,当我注释掉插入查询时,整个事情都会完美执行,但是一旦我包含插入查询,$data ['quads'.trim($attendees[$i])] 的索引就没有定义,$data['series'] 的索引也没有定义。

所有错误都发生在更新查询中,而不是插入查询中。我什至尝试回显这些值,当未注释插入查询时它们消失了。

【问题讨论】:

    标签: php sql sql-server codeigniter


    【解决方案1】:

    希望对你有帮助:

    $insertData   = array(              #change the name of the array as $data you said is already assiged 
       'YRSEM'  => '201301' ,
       'EMPNUM' => trim($attendees[$i]) ,
       'UNTCDE' => $data['unitcode'] ,
       'TRNTYP' => $data['training_type'],
       'TRNSRS' => $data['series'] ,
       'SKLCDE' => $data['skillcde'] ,
       'ACTDTE' => '20130912' ,
       'ACTTME' => '1534' ,
       'EMPRTE' => $data['quads'.trim($attendees[$i])][1],
       'QUDRNT' => $data['quads'.trim($attendees[$i])][0],
       'RMARKS' => $data['remarks'.trim($attendees[$i])],
    );
    
    $this->db->insert_batch('EmployeeLedgerDB', $insertData); 
    

    【讨论】:

    • 也可以使用CIinsert_batch函数。
    • 是的,是的!你是对的!谢谢! @尼洛。这就是答案。我正要输入我的答案,但你已经发布了。谢谢!
    • 如果对您有帮助,请接受答案。 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多