我正在尝试使用不同记录的不同值更新某个字段。
如果我要使用 MySql 语法,我认为应该是:
UPDATE products
SET price = CASE id
WHEN '566423' THEN 49.99
WHEN '5681552' THEN 69.99
END
WHERE code IN ('566423','5681552');
但如果可能的话,我更喜欢使用 Active Record。
我的输入是一个制表符分隔的文本,我将其转换为一个 id 数组和每条记录的所需值:
$data = array(
array(
'id' => '566423' ,
'price' => 49.99
),
array(
'id' => '5681552' ,
'price' => 69.99
)
);
我认为这是 update_batch 的正确结构,但它失败了。这是我尝试过的:
function updateMultiple()
{
if($this->db->update_batch('products', $data, 'id'))
{
echo "updated";
}
else
{
echo "failed )-:";
}
}
我总是失败。我错过了什么?