请参考我问过的这个问题 Codeigniter Insert Multiple Rows in SQL
重申
<tr>
<td><input type="text" name="user[0][name]" value=""></td>
<td><input type="text" name="user[0][address]" value=""><br></td>
<td><input type="text" name="user[0][age]" value=""></td>
<td><input type="text" name="user[0][email]" value=""></td>
</tr>
<tr>
<td><input type="text" name="user[1][name]" value=""></td>
<td><input type="text" name="user[1][address]" value=""><br></td>
<td><input type="text" name="user[1][age]" value=""></td>
<td><input type="text" name="user[1][email]" value=""></td>
</tr>
..........
可以像这样插入MySQL
foreach($_POST['user'] as $user)
{
$this->db->insert('mytable', $user);
}
这导致多个MySQL查询。是否可以进一步优化它,以便插入发生在一个查询中
像这样的东西
insert multiple rows via a php array into mysql
但利用codeigniters更简单的语法。感谢
答案 0 :(得分:4)
$this->db->insert_batch('table_name', $data);
查看code igniter user guide了解详情。
答案 1 :(得分:3)
现在记录得很好,可能对某些人有用:
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data);
// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')
答案 2 :(得分:0)
CodeIgniter似乎没有mutli-insert方法。而且,即使它有,你可能会遇到类似的问题:
答案 3 :(得分:0)
Codeigniter 2(即将发布的版本)将采用批量插入方法。
答案 4 :(得分:0)
在CI 2中,有一个set_insert_batch()
活动记录功能。