Codeigniter Inserting Multidimensional Array as rows in MySQL

帅比萌擦擦* 提交于 2019-12-23 12:46:44

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!