如何在CodeIgniter中进行批量更新,而不是在数据库中每次都执行查询?如何批量更新?
Q
如何批量更新?
3
A
回答
1
CodeIgniter的活动记录类有一个insert_batch()方法,它执行此操作并负责转义数据。
$data = array(
array('name' => 'John', 'email' => '[email protected]'),
array('name' => 'Sue', 'email' => '[email protected]')
);
$this->db->insert_batch('my_table', $data);
http://codeigniter.com/user_guide/database/active_record.html
3
Mysql可以做多个更新或插入。通常在一个活动记录模式中,您可以逐个插入,但对于批量更新或插入,您可以执行此操作。
$sql = "INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12) ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);";
$this->db->query($sql);
+0
要添加到您的评论,你也可以使用查询绑定与那。这样CI将为您自动创建值。即。 “INSERT INTO table(id,Col1,Col2)VALUES(?,?,?),(?,?,?)”$ this-> db-> query($ sql,array(1,1,1,2, 2,3)); – 2010-10-25 19:14:28
1
对于其他老式代码点火器用户着想(像我一样):
您使用的是旧版本? insert_batch和update_batch已经存在了一年多的时间[Sep/2010]。如果您不打算升级,则必须针对每一行运行插入查询,或者手动构建批量插入语句。
0
这个问题是关于更新,但接受的答案是插入。
这里是你怎么做批量更新:
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name 2' ,
'date' => 'My date 2'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name 2' ,
'date' => 'Another date 2'
)
);
$this->db->update_batch('mytable', $data, 'title');
这个例子是从CodeIgniter用户指南:
http://ellislab.com/codeigniter/user-guide/database/active_record.html#update
相关问题
- 1. 如何批量更新?
- 2. 批量Sql更新
- 3. DynamoDB批量更新
- 4. 批量更新MYSQL
- 5. Install4j - 批量更新
- 6. backbone.js批量更新
- 7. 批量更新DynamoDB
- 8. RavenDB批量更新
- 9. Laravel批量更新
- 10. JDBC批量更新
- 11. DynamoDb - 如何进行批量更新?
- 12. 如何用Django“批量更新”?
- 13. 如何批量更新SQL模式
- 14. 如何批量更新在EF
- 15. 如何批量更新XML文件
- 16. 如何批量更新箱enterpise用户
- 17. 如何批量更新一组用户
- 18. 如何为PostgreSQL做批量更新
- 19. 如何执行批量更新查询
- 20. 如何批量更新/插入mongoid/mongodb?
- 21. 休眠批量插入,批量更新
- 22. JPA Hibernate批量/批量更新Spring MVC
- 23. 批量删除和批量更新
- 24. SQLAlchemy批量更新策略
- 25. mysql批量记录更新?
- 26. asp.net 3.5 linq批量更新?
- 27. Dynamics CRM 2011批量更新
- 28. 批量更新LINQ to SQL
- 29. 批量更新队列
- 30. 休眠和批量更新
,但是这会在表'my_table'中将**新数据作为批处理插入。我们如何定义** WHERE **子句来批量更新包含特定电子邮件地址的特定行。 – 2011-11-27 12:18:37