2016-12-25 80 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

相关问题