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

时间:2010-11-04 13:43:23

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

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

$table = new Bugs();
$select = $table->select();
$select->where('bug_status = ?', 'NEW');
$rows = $table->fetchAll($select);

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

UPDATE TableName Set id='2' WHERE id='1';

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

由于

5 个答案:

答案 0 :(得分:39)

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

$table = new Table();

$table->update($data, $where);

答案 1 :(得分:11)

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

$row->id = 2;
$row->save();

答案 2 :(得分:9)

以防万一你想增加列使用Zend_Db_Expr 例如:

$table->update(array('views' => new Zend_Db_Expr('views + 1')),$where);

答案 3 :(得分:2)

public function updateCampaign($id, $name, $value){
    $data = array(
        'name' => $name,
        'value' => $value,
    );
    $this->update($data, 'id = ?', $id );
}

答案 4 :(得分:1)

   $data = array(
    "field1" => "value1",
    "field2" => "value2"
);

$where = "id = " . $id;

$table = new Table();

$table->update($data, $where);