为什么我不能在codeigniter中使用这样的insert_batch

时间:2012-03-12 06:28:10

标签: php codeigniter

您正在使用codeigniter,我使用insert_batch函数。我有这样的表结构

enter image description here

我正在使用这样的数组来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
        )

)

错误

enter image description here

为什么会发生这种情况

我不能使用具有不同键的数组???????

请提前帮助..............谢谢

2 个答案:

答案 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);
}

我已经通过这种方式解决了我的问题。希望,同样适合你。