我正在使用codeigniter框架,並且我試圖從表單保存數據時遇到了一些問題。從包含數組的foreach中插入數據
如何爲每個包含其他信息的user_answer插入一個新行?
謝謝!
這是在控制我的foreach循環和調用模型
foreach($_POST as $key => $val)
{
$data[$key] = $this->input->post($key);
}
$this->quiz_model->save_answers($data);
這是模型
function save_answers($data)
{
foreach ($data['user_answer'] as $key) {
$this->db->insert('answer', $data);
}
}
表被設置爲
- answer_id(自動遞增)
- quiz_id
- question_id
- USER_ID
- user_answer
瓦爾轉儲
data => array(3) { ["user_id"]=> string(9) "anonymous" ["quiz_id"]=> string(2) "24" ["question_id"]=> string(2) "18" ["user_answer"]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } }
data['user_answers'] => array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
錯誤
Error Number: 1054
Unknown column 'Array' in 'field list'
INSERT INTO `answer` (`user_id`, `quiz_id`, `question_id`, `user_answer`) VALUES ('anonymous', '24', Array)
首先,我會使用prepared語句,codeigniter沒有的東西。我會建議你在你的模型中使用mysqli。你很容易sql注入。 –
@Robert Rocha只要他使用db->插入他的「所有值都會自動轉義,產生更安全的查詢。」另外,您可以使用PDO和mysqli查詢。根據codeigniter docuentation – Brad