2017-07-03 36 views
0

我在我的codeigniter中有多個文件上傳。我需要將以下值存儲在數據庫中。我將file_name作爲0,1,2等數組(最大值取決於用戶的動作),folder_id,created作爲固定值。Codeigniter:批量插入數組到數據庫

對於每一個file_name(0,1,2 ......),在folder_id & created,已經是在表

array (size=4) 
    'file_name' => 
    array (size=3) 
     0 => string '1.jpg' (length=5) 
     1 => string '2.jpg' (length=5) 
     2 => string '10_deepak.jpg' (length=13) 
    'folder_id' => string '5' (length=1) 
    'created' => string '2017-07-03 23:42:42' (length=19) 

到目前爲止,我已經用下面的嘗試插入;

$data = array(
      'file_name' => $data['file_name'] , 
      'created' => $data['created'] , 
      'folder_id' => $data['folder_id'] 
       ); 
     $this->db->insert('ins_files', $data); 

因爲當我嘗試時,我也得到了Array to String轉換錯誤。

+0

你不能傳入那樣的數據。您需要爲每個文件名創建一個單獨的數組。 – aynber

+0

確定如何爲每個文件名獲取單獨的數組 – Keynes

+0

您必須自己構建它。 – aynber

回答

0

根據您的代碼。這是你可以使用這種直接的方法。

$array = array(
    'file_name' => array(
     '1.jpg', 
     '2.jpg', 
     '10_deepak.jpg', 
    ), 
    'folder_id' => 5, 
    'created' => '2017-07-03 23:42:42' 
); 
// encode the files name in Json array better 
// approach other you can also implode them to store 

$data = array(
    'file_name' => json_encode($array['file_name']), 
    'folder_id' => $array['folder_id'], 
    'created' => $array['created'], 
); 
// Verify the data array 
// echo '<pre>'; print_r($data); 
$this->db->insert('ins_files', $data); 
+0

如果您需要更多幫助,請告知我。 :) –

+0

兄弟,它被保存,所有的數據('file_name')被存儲在單行..我希望它被保存爲每個'file_name'分開的行。每個'file_name'具有'folder_id','created' [這對所有行都是通用的] – Keynes

+0

需要你的問題的一些描述 –