我有三个数组示例:$ array1,$ array2,$ array3。
我想将array2和array3插入同一个表中的两个不同列中。 我可以这样做吗?
这里是我正在尝试的下面的代码但是它对我来说不起作用我在codeigniter中做了:
控制器:
$athletes_id = $this->input->post('athletes'); // array 1
$fields_id = $this->input->post('fields_id'); // array 2
$athlete_score = $this->input->post('athlete_score'); // array 3
$id = array();
foreach($athlete_score as $row){
$additional_data = array(
'test_reports_id' => $test_report_id,
'score' => $row,
);
$id[] = $this->test_model->save_test_reports_details($additional_data);
}
for($j=0;$j<count($fields_id);$j++){
$data2 = array('fields_id' => $fields_id[$j]);
$this->test_model->update_test_reports_details($id,$data2);
}
型号:
public function update_test_reports_details($id,$data2){
$this->db->where_in('id',$id);
$this->db->update('test_reports_details',$data2);
}
答案 0 :(得分:2)
只需序列化数组。
$data2 = serialize($array2); // or whatever array you want to store
然后使用unserialize检索
$array2 = unserialize($data2);//or the row index
答案 1 :(得分:0)
要在数据库中存储数组,您必须将其序列化。
尝试:
public function update_test_reports_details($id,$data2){
$this->db->where_in('id',$id);
$this->db->update('test_reports_details',serialize($data2));
}
要从数据库中获取它时要反序列化它必须使用unserialize()
答案 2 :(得分:0)
您可以按照其他答案中的建议进行序列化,但我个人更喜欢对阵列进行json_encode。
$data = json_encode($array);
当您在模型中阅读时,您应该解码数据:
$array = json_decode($data, true); // set second argument to true to get an associative array
使用JSON具有更好的可读性,同时仍然在数据库中。这可能看起来不多,但在某些情况下它确实有用。