php - CodeIgniter insert_batch()

标签 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

我努力在我的表格中实现

  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

编辑:Codeigniter 3.0 查询生成器类:inserting data

关于php - CodeIgniter insert_batch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206178/

相关文章:

php - a href tel 和标准浏览器

javascript - 将两个表单合并为一个表单处理程序

PHP/MySQL 关系数据库模式的搜索代码和逻辑

codeigniter - PyroCMS 语言支持

PHP 运费计算器

php - 相对路径不适用于 css 中的图像

php - 带有 session (@variables) 的 MySQL 查询在 MySQL Workbench 中工作,但在 PHP 中不起作用

mysql - Codeigniter db 无法在数组中工作

php - 使用 Codeigniter 向手机发送消息

mysql - 如何使用 codeigniter 连接 3 个表,表中没有任何空值?