如何更新Zend中的数据库表记录?

Awa*_*wan 21 php mysql sql zend-framework zend-db

我正在使用像这样的选择,它成功获取记录:

$table = new Bugs();
$select = $table->select();
$select->where('bug_status = ?', 'NEW');
$rows = $table->fetchAll($select);
Run Code Online (Sandbox Code Playgroud)

但现在我想更新相同的记录.例如在简单的MySQL中.

UPDATE TableName Set id='2' WHERE id='1';
Run Code Online (Sandbox Code Playgroud)

如何在Zend中执行以上查询?

谢谢

Ale*_*tau 40

$data = array(
   'field1' => 'value1',
   'field2' => 'value2'
);
$where = $table->getAdapter()->quoteInto('id = ?', $id)

$table = new Table();

$table->update($data, $where);
Run Code Online (Sandbox Code Playgroud)

  • 你先生得到'$ where = $ table-> getAdapter() - > quoteInto('id =?',$ id)`快捷方式的奖励标记. (4认同)

Tim*_*tle 11

由于您已经获取了要更改的行,因此最简单的方法是:

$row->id = 2;
$row->save();
Run Code Online (Sandbox Code Playgroud)


小智 9

如果你想增加一列使用Zend_Db_Expr,例如:

$table->update(array('views' => new Zend_Db_Expr('views + 1')),$where);
Run Code Online (Sandbox Code Playgroud)