CodeIgniter insert_batch()

时间:2014-11-29 19:31:34

标签: php codeigniter

好的我想弄清楚如何使用insert_batch

我正在尝试这样的事情

function checkboxes($data,$category)
    {

        $insert=array(
                        'story'=>$data
                        'category'=>$category
                     );

        $this->db->insert_batch('stories_to_categories',$insert);
    }

对于$ data,我有数组,可能有值和键的范围

(
    [0] => 1
    [1] => 6
    [2] => 14
    [3] => 15
    [4] => 18
)

对于类别i,我将只有一个值,例如2

我尝试在我的tabele中实现

  story category
------------------------
    1        2
    6        2
    14       2
    15       2
    18       2

有人能帮助我,我感到非常痛苦!

2 个答案:

答案 0 :(得分:4)

您可以通过对代码进行一些修改来实现此目的。 CI文档显示批量插入需要一个嵌入了关联数组的数组:1个要插入的新行的关联数组,将列映射到值。

实际上,您可能希望为$insert

构建一个这样的数组
$insert=array(
    array('story'=>1, 'category'=>2).
    array('story'=>6, 'category'=>2).
    array('story'=>14, 'category'=>2).
    array('story'=>15, 'category'=>2).
    array('story'=>18, 'category'=>2).
);

由于您的类别是常量,您可能需要使用函数:

function _insert_($data, $category='2', $options=array('data'=>'story', 'category'=>'category'))
{
    $return = array();
    foreach ($data as $value)
    {
        $return[] = array($options['data']=>$value, $options['category']=>$category);
    }
    return $return;
}

然后您可以使用以下内容:

$this->db->insert_batch('stories_to_categories',_insert_($data));

希望这有帮助。

查找以下参考:

请参阅此处的CodeIgniter参考:CodeIgniter Active Record: #Insert

答案 1 :(得分:0)

function checkboxes($category_checkboxes,$last_story_id)
    {
        foreach ($category_checkboxes as $box) 
        {
            $insert[] = array(
                              "category" => $box,
                              "story" => $last_story_id
                             );

        }

        $this->db->insert_batch('stories_to_categories',$insert);
    }