关于等效于此MySQL查询的Active Record:等效于此MySQL查询的Active Record-CodeIgniter

Active Record equivalent to this MySQL query - CodeIgniter

我只是想要一些帮助,弄清楚如何将来自多选框的数据插入到变量中,然后再放入数据库中。

我的数据库表的结构如下-表:prd_attr

1
2
3
4
ID | Product_ID | name | value
-------------------------------
1  | 3          | size | large
2  | 3          | size | medium

所以说我有一个名称为sizes[]的多重选择框,管理员选择2种尺寸的产品输入数据库。我可以在控制器中获取这些值并将其放入变量中:

1
$sizes = $_GET['sizes'];

,然后将该变量传递给模型。一旦到达,我就可以将数据作为MySQL查询插入,如下所示:

1
2
3
4
foreach ($sizes as $s)
{
    $query = mysql_query("insert into prd_attr ('name', 'value') VALUES ('size','$s')");
}

但是我已经知道mysql_ *已过时,并且由于我使用的是提供Active Records的框架,所以我想利用它。我知道Active Record的基础知识,但是由于这是一个可以容纳任意多个值的变量的foreach循环,因此我不知道如何在Active Records中包含foreach语句。

有人可以解释吗?谢谢您的帮助。


您也可以在codeigniter中使用批处理插入:

尝试一下:

1
2
3
4
5
6
7
8
9
10
11
12
function insert_sizes()
{
    $sizes  =   $this->input->get('sizes');
    foreach ($sizes as $s)
    {
        $data[] = array(
          'name' => 'size',
          'value' => $s
        );
    }
    $this->db->insert_batch('prd_attr',$data);
}

有关更多详细信息:
http://ellislab.com/codeigniter/用户指南/database/active_record.html


您可以在Codeigniter的模型中使用它。这是一个方法

1
2
3
4
5
6
7
8
9
10
function insert_sizes()
{
    $sizes  =   $this->input->get('sizes');
    $data['name']   =   'size';
    foreach ($sizes as $s)
    {
        $data['value']  =   $s;
        $this->db->insert('prd_attr',$data);
    }
}