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");
上面是我的控制器中的代码片段,我将数据从循环的帖子值传递到数据库中。当我运行此方法时,我收到一个数据库错误,内容类似于
"answer_value"和"question_i"不能为空
即使如您所见,我通过$value和$question变量将数据传递给这些值。当我检查数据库时,插入过程似乎工作正常,因为我的数据被传递到表中。为什么我会收到此错误,如何解决?我当前的解决方案是禁用数据库配置中的调试。谢谢。
我看到数组中的元素 $_POST 比您在循环中的预期要多得多,例如。 对于数组
array(
'question_0' => 'a',
'question_1' => 'b',
'id_0' => '1',
'id_1' => '2',
);
您的循环将迭代 4 次,因此对于第三次和第四次迭代,它将生成错误,因为 question_3、question_4 等项目在 $_POST 中不存在,因此 $this->input->post("id_$i"( 返回 NULL。