Я использую select like this и успешно извлекает запись:
$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?
благодаря
$data = array( 'field1' => 'value1', 'field2' => 'value2' ); $where = $table->getAdapter()->quoteInto('id = ?', $id) $table = new Table(); $table->update($data, $where);
Поскольку вы уже выбираете строку, которую хотите изменить, кажется просто проще:
$row->id = 2; $row->save();
на всякий случай, если вы хотите увеличить значение столбца, используйте Zend_Db_Expr, например:
$table->update(array('views' => new Zend_Db_Expr('views + 1')),$where);
public function updateCampaign($id, $name, $value){ $data = array( 'name' => $name, 'value' => $value, ); $this->update($data, 'id = ?', $id ); }
$data = array( "field1" => "value1", "field2" => "value2" ); $where = "id = " . $id; $table = new Table(); $table->update($data, $where);
Для более чем одного, где оператор использует следующее.
$data = array( "field1" => "value1", "field2" => "value2" ); $where['id = ?'] = $id; $where['status = ?'] = $status; $table = new Table(); $table->update($data, $where);