php - MYSQL多重插入codeigniter




database activerecord (2)

可能重复:
通过一个php数组插入多行到MySQL

我知道在mySQL中做多重插入的可能性是这样的:

    foreach ($array as $manuf) {    
        $sql[] = '("'.mysql_real_escape_string($manuf['name']).'", "'.$manuf['lang'].'", "'.$mId.'")';
    }

    $this->db->query('INSERT INTO manufacturers (name, lang ,mid) VALUES ' . implode(',', $sql) );

我想知道是否有更好的方法来做到这一点,也许延长当前的数据库(活动记录)库,使其更少的代码?

谢谢


你需要清楚你想在单个语句中插入多行的原因。 这是为了表现吗?

框架是为了编程生产力和便利性,但不一定是性能。 我同意@Udi Mosayev给出的答案 - 在最简单的用法中使用框架API。

如果要插入少量的行,则每个语句插入一行和每个语句插入多行的区别是不重要的。

如果有大量的行,你真的需要它们插入高性能,没有什么比LOAD DATA INFILE 。 您优化INSERT使用的尝试正在变得十分愚蠢和愚蠢。 甚至将您的PHP数组转储到tmpfile然后加载它LOAD DATA比使用INSERT更快。


如果你要插入真正大量的行,你应该在单个查询中完成。 我不认为CI是正确的。 PS:不要忘记mysql的最大查询大小。





codeigniter