2010-12-31 25 views
0

私はZend Frameworkを使用しています。私は木のテーブルを持っています。ユーザーとグループとそれらをリンクする1つのテーブル。複数行のZend_DBで更新する

特定のグループのユーザーからフィールドを増やしたいとします。 1人のユーザーを増やすには:

$table = 'users'; 
$update = array(
    'ACLVersion' => new Zend_Db_Expr('ACLVersion + 1') 
); 
$where[] = $db->quoteInto('id = ?', $user); 
$db->update($table, $update, $where); 

私は複数の塊を使用しようとしました。

私は、Zendとどこでテーブルを結合する方法を見当もつかない。 Zend_Db_TableJOINを使用するには

答えて

0

、あなたは整合性チェックを無効にする必要があります。

ZF Reference Guide for Zend_Db_Table例#27を参照してください。

$table = new Bugs(); 
    // retrieve with from part set, important when joining 
    $select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART); 
    $select->setIntegrityCheck(false) 
     ->where('bug_status = ?', 'NEW') 
     ->join('accounts', 'accounts.account_name = bugs.reported_by') 
     ->where('accounts.account_name = ?', 'Bob'); 
    $rows = $table->fetchAll($select); 

注整合性チェックを無効にすると、得られるレコードのオートマジックの一部無効にすること:

を得行または行セットがされます は「ロック」列として返さ( セーブ()、(削除を意味する)と、任意の フィールド設定方法 例外がスローされます)。与えられたグループ

からIDの配列を持つ

-1

ロード$ numの次のコードは、仕事をする

$table = 'users'; 
$update = array(
    'ACLVersion' => new Zend_Db_Expr('ACLVersion + 1') 
); 
$where = $db->quoteInto('id IN (?)', $num); 
$db->update($table, $update, $where);