【发布时间】:2013-05-28 11:20:09
【问题描述】:
我想用 codeigniters update_batch() 函数更新数据库中的多行。
但是 where 中指定的字段也应该更改。
下面的代码应该清楚了:
$set = array(
array(
'token' => '65787131678754',
'device' => 'none',
'new_token_value' => ''
),
array(
'token' => '75798451315464',
'device' => 'none',
'new_token_value' => ''
)
);
$this->db->update_batch(TBL_NAME, $set, 'token');
token 中指定的令牌应使用device 更新为'none',并且token 本身应设置为空字符串''。
update_batch() 函数可以做到这一点吗?
在 sql 中我会写类似的东西
UPDATE TBL_NAME
SET token='', device='none'
WHERE token='65787131678754'
一次更新,但多次更新不可行,所以我想使用update_batch() 函数。
【问题讨论】:
-
你试过了吗?错误是什么?
-
@tomexsans 我没有尝试,因为我不知道如何定义“new_token_value”。但是我不能在同一个数组中添加 2 次
token,一个是实际令牌值,另一个是新值。 -
那么更新批次不是问题,问题是如何按照您的意愿更新数据。
-
那么我应该用纯sql和每个令牌的循环来做吗?但我认为这不是一个好的解决方案。您对如何更新多个条目有更好的想法吗?
-
看看 codeigniter 事务。
标签: php codeigniter activerecord codeigniter-2