微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-CodeIgniter insert_batch()

好吧,我试图弄清楚如何使用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
)

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

我尝试达到我的习惯

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

有人可以帮助我,我很痛苦!

解决方法:

您可以通过对代码进行一些修改来实现此目的.
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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐