Codeigniter - Lot de mise à Jour avec de Multiples Où les Conditions

Pour commencer, le Codeigniter documentation sur update_batch n'existe pas. kenjis a eu la gentillesse de fournir de la documentation et de le soumettre au référentiel. J'espère qu'ils tirez bientôt.

Personne ne sait comment ajouter plusieurs cas où les conditions de Codeigniters update_batch commande?

Mon Utilisation Souhaitée:

$where = array(
    'title',
    'name'
); 

$this->db->update_batch('mytable', $data, $where);

Quand j'ai essayé ce code j'ai eu l'erreur de suivi:

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

Mise à jour de la Documentation du Lot par kenjis:

$this->db->update_batch();

Génère une mise à jour de la chaîne sur la base des données que vous fournissez, et exécute la requête. Vous pouvez passer soit une tableau ou un objet à la fonction. Voici un exemple utilisant un tableau:

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

Le premier paramètre contient le nom de la table, le deuxième est un tableau associatif des valeurs, le troisième paramètre est le clé où.

Sources:

OriginalL'auteur zechdc | 2011-09-15