您正在使用codeigniter,我使用insert_batch
函数。我有这样的表结构
我正在使用这样的数组来insert_batch
函数
Array
(
[0] => Array
(
[ProfileID] => 5
[ActivityTypeID] => 4
[ActivityTitle] => bbggg
[ActivityLink] => http://localhost/elephanti2/home/user/action/settings/user/profilesettings
[IsActive] => 1
[CreatedOn] => 1331532905
[CreatedBy] => 5
)
[1] => Array
(
[ActivityImage] =>
[ActivityTitle] => kkkkkkkk
[ActivityFromDate] => 1330642800
[ActivityToDate] => 1331852400
[ActivityDescription] => kkkkkkkkkkkkkkkk
[ActivityLink] =>
[CreatedOn] => 1331532905
[CreatedBy] => 5
[ProfileID] => 5
[ActivityTypeID] => 1
)
)
错误
为什么会发生这种情况
我不能使用具有不同键的数组???????
请提前帮助..............谢谢
答案 0 :(得分:3)
insert_batch
转换为使用VALUES
形式的INSERT
的SQL查询。这需要插入每个项目以指定相同的字段。
答案 1 :(得分:0)
我更改了文件中的代码行后修复了我的问题" system \ database \ DB_query_builder.php"
替换文件DB_query_builder.php中的代码,路径:" system \ database \ DB_query_builder.php"
protected function _insert_batch($table, $keys, $values)
{
return 'INSERT INTO '.$table.' ('.implode(', ', $keys).') VALUES '.implode(', ', $values);
}
通过以下代码
protected function _insert_batch($table, $keys, $values)
{
if(is_array($values))
{
$values = implode(',',$values);
}
return 'INSERT INTO '.$table.' ('.implode(', ', $keys).') VALUES '.implode(', ', $values);
}
我已经通过这种方式解决了我的问题。希望,同样适合你。