0

特定のフィールドを、レコードごとに異なる値で更新しようとしています。

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 )-:";
    }

}

そして、私はいつも失敗します。私は何が欠けていますか?

4

0 に答える 0