【问题标题】:Codeigniter active record issueCodeigniter 活动记录问题
【发布时间】:2013-04-14 23:10:31
【问题描述】:

好的,所以我有以下 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 );

【问题讨论】:

    标签: sql codeigniter activerecord codeigniter-2


    【解决方案1】:

    如果您在插入之前执行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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 2013-01-06
      • 2011-09-29
      • 2010-12-27
      • 1970-01-01
      • 2014-02-22
      • 2014-10-19
      相关资源
      最近更新 更多