好的,所以我有以下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 );
答案 0 :(得分:3)
如果您在插入前执行print_r($movie_genre)
,则会看到film_id
和genre_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);