2015-12-31 91 views
1

我已经发布值$ a,$ b,$ c ...是数组格式 我给了这个模型文件。如何使用codeigniter插入多个数组到数据库

function insert_bank_data($da,$b,$c,$d,$e) 
    { 

     $data=array('date'=>$da,'des'=>$b,'amount'=>$c,'price'=>$d); 
     $this->db->insert_batch('total_trans',$data); 


} 

我得到这样的错误。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22' at line 1 
+0

为什么使用';'两次? –

+0

我删除它。我们得到 – manju

+0

是$ da,$ b,$ c,$ d,$ e数组? – splash58

回答

0

如果函数的参数是相同长度的数组,你应该写

function insert_bank_data($da,$b,$c,$d,$e) 
{ 
    $data = array(); 
    for ($i-0; $i < count($da); $i++) { 
    $data[] = array('date'=>$da[$i],'des'=>$b[$i],'amount'=>$c[$i],'price'=>$d[$i]); 
    $this->db->insert_batch('total_trans',$data); 
} 
+0

awesome.got it ..........谢谢。 ....... – manju

+0

不客气! – splash58

1

您可以使用json_encode()

function insert_bank_data($da,$b,$c,$d,$e) 
{ 

    $data=array('date'=>json_encode($da),'des'=>json_encode($b),'amount'=>json_encode($c),'price'=>json_encode($d)); 
    $this->db->insert_batch('total_trans',$data); 

} 
0

您也可以使用此...

function insert_bank_data($da,$b,$c,$d,$e) 
{ 

    for ($i=0; $i < count($da); $i++) { 
     $data= array('date'=>$da[$i],'des'=>$b[$i],'amount'=>$c[$i],'price'=>$d[$i]); 
     $this->db->insert('total_trans',$data); 
    } 
} 
相关问题