在多行上使用Zend_DB进行更新

时间:2010-12-31 15:34:19

标签: mysql sql zend-framework sql-update zend-db

我正在使用Zend Framework。我有树桌。用户和组以及一个链接它们的表。

我想从给定组的用户增加一个字段。要增加一个用户我做:

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

我试图使用多个。

我不知道如何在Zend的哪个地方加入表格。

2 个答案:

答案 0 :(得分:0)

要将JOINZend_Db_Table一起使用,您必须禁用完整性检查。

请参阅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);

请注意,禁用完整性检查还会禁用生成的记录集的某些自动化:

  

生成的行或行集   作为“锁定”行返回(意思是   save(),delete()和any   场地设定方法会抛出一个   除外)。

答案 1 :(得分:-1)

使用来自给定组

的id的数组加载$ num

以下代码将完成工作

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