(CodeIgniter查询构建器)即使插入过程在后台工作正常,我也会收到数据库插入错误

时间:2017-03-30 00:30:42

标签: php mysql codeigniter

public function answerSurvey() {
    $id = $this->uri->segment(3);
    $i = 0;        
    $reserved = $this->mAttendee->getReserve($id, $this->session->username);
    $zxc = $reserved->registration_id;
    foreach ($_POST as $sample) {
        $value = $this->input->post("question_$i");
        $question = $this->input->post("id_$i");
        $qwe = array('answer_value' => $value, 'question_id' => $question, 'user_id' => $id);
        $this->MSurvey->addAnswer($qwe,$zxc);
        $i++;
    }
    redirect(base_url() . "attendee/viewEvent/$id");

上面是我的控制器中的片段,我将循环的post值中的数据传递到数据库中。当我运行此方法时,我收到一个数据库错误,其中包含类似

的内容
  

' answer_value'和' question_i'不能为空

即使你可以看到我通过$ value和$ question变量将数据传递给这些值。当我检查数据库时,插入过程似乎工作正常,因为我的数据传递到表。为什么我会收到此错误,如何解决?我目前的解决方案是禁用数据库配置中的调试。谢谢。

1 个答案:

答案 0 :(得分:0)

我看到你在数组 $ _ POST 中的元素比你在循环中预期的要多得多,例如。对于数组

array(
    'question_0' => 'a',
    'question_1' => 'b',
    'id_0' => '1',
    'id_1' => '2',
);

您的循环将迭代4次,因此对于第三次和第四次迭代,它将产生错误,因为 $ _ POST中不存在 question_3 question_4 等项目所以 $ this-> input-> post(“id_ $ i”)返回 NULL