相当于这个MySQL查询的活动记录-CodeIgniter



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

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

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

假设我有一个名为sizes[]的多选框,管理员为一个产品选择2个尺寸以输入数据库。我可以在控制器中获得这些值,并将它们放入一个变量中:

$sizes = $_GET['sizes'];

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

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

但我了解到mysql_*是不推荐使用的,因为我使用的是一个提供Active Records的框架,所以我想利用它。我知道活动记录的基本知识,但由于这是一个可以容纳任意数量值的变量上的foreach循环,我不知道如何在活动记录中包含foreach语句。

有人能解释一下吗?谢谢你的帮助。

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

试试这个:

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/user-guide/database/active_record.html

您可以在代码点火器的模型中使用它。以下是的方法

function insert_sizes()
{
    $sizes  =   $this->input->get('sizes');
    $data['name']   =   'size';
    foreach ($sizes as $s)
    {
        $data['value']  =   $s;
        $this->db->insert('prd_attr',$data);
    }
}   

最新更新