Php 如何进行批量更新?
我如何在CodeIgniter中进行批量更新,而不是每次在数据库中启动查询?Mysql可以进行多次更新或插入。通常在活动记录模式中,您会逐个插入,但对于批量更新或插入,您可以这样做Php 如何进行批量更新?,php,codeigniter,Php,Codeigniter,我如何在CodeIgniter中进行批量更新,而不是每次在数据库中启动查询?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-&
$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);
CodeIgniter的活动记录类有一个insert_batch()方法,它可以完成这项工作并负责转义数据
$data = array(
array('name' => 'John', 'email' => 'john@email.com'),
array('name' => 'Sue', 'email' => 'sue@email.com')
);
$this->db->insert_batch('my_table', $data);
为了其他老式的CodeIgniter用户(比如我自己): 你用的是旧版本?插入批次和更新批次已存在一年多[2010年9月]。如果不打算升级,则必须对每一行运行insert查询,或手动构造一个batch insert语句
发件人:这个问题是关于更新的,但公认的答案是关于插入的 以下是如何进行批量更新:
$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用户指南:
要添加到注释中,还可以使用查询绑定。这样CI将为您自动转义值。例如,“插入表(id,Col1,Col2)值(?,?,(?,?,?)”$this->db->query($sql,数组(1,1,1,2,2,3));但这将在“my_table”表中批量插入新数据。我们如何定义WHERE子句来批量更新包含特定电子邮件地址的特定行。