Codeigniter - Пакетное обновление с несколькими состояниями

для начала, документация Codeigniter на Update_Batch не существует. Кенжис был достаточно добрым, чтобы предоставить некоторую документацию и представить ее в хранилище. Надеюсь, они скоро потянут его.

Кто-нибудь знает, как добавить несколько условий, где условия для команды update_batch_batch update_batch?

Мое желаемое использование:

$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();

Создает строку обновления на основе данных, которые вы поставляете, и запускает запрос. Вы можете пропустить массив или объект на функцию. Вот пример, используя массив:

$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')

Первый параметр будет содержать имя таблицы, второй - это ассоциативный массив значений, третий параметр - это ключ откуда.

Источники:

15
задан zechdc 15 September 2011 в 05:22
поделиться