【发布时间】:2011-11-17 13:44:47
【问题描述】:
对于初学者,关于 update_batch 的 Codeigniter 文档不存在。 kenjis 提供了一些文档并将其提交到存储库。希望他们尽快把它拉出来。
有谁知道如何在 Codeigniters update_batch 命令中添加多个 where 条件?
我的预期用途:
$where = array(
'title',
'name'
);
$this->db->update_batch('mytable', $data, $where);
当我尝试此代码时,出现以下错误:
A Database Error Occurred
One or more rows submitted for batch updating is missing the specified index.
Filename: C:\wamp\www\wheel\system\database\DB_active_rec.php
Line Number: 1451
kenjis 更新批量文档:
$this->db->update_batch();
根据您提供的数据生成更新字符串,并运行查询。您可以将 array 或 object 传递给函数。下面是一个使用数组的例子:
$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');
// Produces:
// UPDATE `mytable` SET `name` = CASE
// WHEN `title` = 'My title' THEN 'My Name 2'
// WHEN `title` = 'Another title' THEN 'Another Name 2'
// ELSE `name` END,
// `date` = CASE
// WHEN `title` = 'My title' THEN 'My date 2'
// WHEN `title` = 'Another title' THEN 'Another date 2'
// ELSE `date` END
// WHERE `title` IN ('My title','Another title')
第一个参数将包含表名,第二个是一个关联数组,第三个参数是 where 键。
来源:
- kenjis 的文档更新: https://bitbucket.org/kenjis/ci-user-guide/changeset/3d579dd14afe
- saintnicster 的拉取请求:https://github.com/EllisLab/CodeIgniter/pull/448
【问题讨论】:
标签: codeigniter activerecord codeigniter-2