问题
Please Refer to this question I asked
Codeigniter Insert Multiple Rows in SQL
To restate
<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>
..........
Can Be Inserted into MySQL as this
foreach($_POST['user'] as $user)
{
$this->db->insert('mytable', $user);
}
This results in multiple MySQL queries. Is it possible to optimise it further, so that the insert occurs in one query
Something like this
insert multiple rows via a php array into mysql
but taking advantage of codeigniters simpler syntax. Thanks
回答1:
$this->db->insert_batch('table_name', $data);
Check the code igniter user guide for more details.
回答2:
CodeIgniter does not seem to have a mutli-insert method. Moreover, even if it had, you may run into issues like:
- Hitting the maximum query length cap
- Having to lock the table until inserts are done
- Dealing with errors can be a bit harder
- ...
回答3:
Codeigniter 2 (upcoming release) will have a batch insert method.
回答4:
In CI 2, there is a set_insert_batch()
Active Record function.
来源:https://stackoverflow.com/questions/4166146/codeigniter-inserting-multidimensional-array-as-rows-in-mysql