2016-12-25 82 views
1

如何將以下數組值保存到我的sql表中?如何將數組值保存爲mysql數據庫中的每條記錄

Array (
    [0] => "/path/to/file/file_name1.jpeg" 
    [1] => "file_name1.jpeg" 
) 
Array (
    [0] => "/path/to/file/file_name2.jpeg" 
    [1] => "file_name2.jpeg" 
) 

以下是我的表結構,

id - int - auto inc 
path - varchar(200) 
name - varchar(50) 

在此先感謝。

回答

2

您可以插入數據的陣列insert()方法:

$data = [ 
    ['path' => '/path/to/file/file_name1.jpeg', 'name' => 'File 1'], 
    ['path' => '/path/to/file/file_name2.jpeg', 'name' => 'File 2'], 
    ['path' => '/path/to/file/file_name3.jpeg', 'name' => 'File 3'], 
]; 

Model::insert($data); 

或者:

.... 
DB::table('some_table')->insert($data); 
+0

感謝@alexey,我返回從函數數組值。我通過返回的值來保存到數據庫中。請建議我如何將該數組值保存到數據庫中。 – Haripriya

+0

我想你應該創造新的問題,描述情況併發布一些代碼,所以我們也可以幫助你。 –

0

您可以使用foreachcreate方法:

foreach ($array as $key => $value) { 
    ModelName::create(['path' => $value[0], 'name' => $value[0]]); 
} 

記得要加pathname在您模型的可填寫屬性中。

+0

這會工作,但是這會爲每個插入創建數據庫查詢。 –

+0

當你有一個「創建」方法的觀察者時,它是完整的。 –

0

您可以添加多個值與以下

$data = array(
    array('name'=>'value', 'path'=>'value'), 
    array('name'=>'value', 'path'=>'2048'), 
    //... 
); 

Model::insert($data); 

你可以找到更多在這裏 https://laravel.com/docs/5.3/queries#inserts

+0

如果你想更新時間戳,你將不得不通過 'created_at'=> $ now, 'modified_at'=> $ now 希望它能幫到你 – Zain

相關問題