好的我想弄清楚如何使用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
有人能帮助我,我感到非常痛苦!
答案 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);
}