Codeigniter活动记录问题

时间:2013-04-14 23:10:31

标签: sql codeigniter activerecord codeigniter-2

好的,所以我有以下SQL查询:

INSERT INTO film_genre
    (film_id, genre_id)
VALUES
    (1, 1),
    (1, 2),
    (1, 3)

我需要将其转换为codeigniters活动记录,这是我到目前为止所得到的,但我只从三个中获得一个数据:

     $movie_genre = array(
            'film_id' => $movies['id'],
            'genre_id' => 1, 
            'film_id' => $movies['id'],
            'genre_id' => 2, 
            'film_id' => $movies['id'],
            'genre_id' => 3, 
            );

$this->db->insert('film_genre', $movie_genre );

1 个答案:

答案 0 :(得分:3)

如果您在插入前执行print_r($movie_genre),则会看到film_idgenre_id只有一个值。这是因为数组中的每个键只能有一个值。您为每个键定义了三个值,因此您的早期值将被覆盖。

如果按如下方式格式化数组,则可以使用insert_batch方法。请参阅http://ellislab.com/codeigniter/user-guide/database/active_record.html

的方法的完整说明
$records = array(
    array('film_id' => 1, 'genre_id' => 1),
    array('film_id' => 1, 'genre_id' => 2),
    array('film_id' => 1, 'genre_id' => 3)
);

$this->db->insert_batch('film_genre', $records);