如果未使用php(laravel)定义数组元素,则将null插入数据库
我试图将数组插入到表中,但数组的某些元素未定义。 我想在元素未定义的地方插入null。 数组如下所示:如果未使用php(laravel)定义数组元素,则将null插入数据库,php,arrays,laravel,insert,laravel-4,Php,Arrays,Laravel,Insert,Laravel 4,我试图将数组插入到表中,但数组的某些元素未定义。 我想在元素未定义的地方插入null。 数组如下所示: [0]=>Array ( [0] => Array ( [Id] => 120 [Title] => PHP [Year] => 2011 [Version] =>5.5 ) [1] => Array ( [Id] => 121
[0]=>Array
(
[0] => Array
(
[Id] => 120
[Title] => PHP
[Year] => 2011
[Version] =>5.5
)
[1] => Array
(
[Id] => 121
[Title] => Javascript
[Year] => 2010
[Version] =>7
)
)
[1]=>Array
(
[0] => Array
(
[Id] => 1
[Title] => Html
[Author] => peter
)
[1] => Array
(
[Id] => 1
[Title] => Asp
[Author] => john
)
)
[2]=>Array
(
[0] => Array
(
[Id] => 1
[Title] => Html
[Year] => 2011
[Page] =>40
)
[1] => Array
(
[Id] => 1
[Title] => Asp
[Year] => 2010
[Page] =>220
)
)
表中有6个字段id、标题、年份、作者、版本和页面
$this ->table->create(array(
'id' => $data['Id'] ,
'title' => $data['Title'] ,
'year' => $data['Year'] ,
'author' => $data['Author'],
'version' => $data['Version'] ,
'page' => $data['Page'] ,
))
未定义变量时如何向表中插入null。比如像
未定义($data['Version'])?空:$data['Version']!!!!!!php函数或任何可能的解决方案?
谢谢您可能能够:
foreach($data as $row)
{
$info = array(
'id' => $this->getData($row, 'Id'),
'title' => $this->getData($row, 'Title'),
'year' => $this->getData($row, 'Year'),
'author' => $this->getData($row, 'Author'),
'version' => $this->getData($row, 'Version'),
'page' => $this->getData($row, 'Page'),
);
$this->table->create(array_filter($info));
}
public function getData($data, $key)
{
return isset($data[key]) ? $data[key] : null;
}
使用列上的默认NULL子句创建表。列已->可空()只插入了第一个子数组,但不是全部。谢谢。它工作得非常好。代码中有输入错误,只需将$data更改为$row即可。