Я пытаюсь сделать запросы обновлений с помощью Zend_Db_Adapter, но когда я делаю эхо запросов, значение, которое я хочу обновить, по-прежнему является "?". Я проверяю значение $ foo, у меня всегда есть 1 или 0 My code:
$this->_db->beginTransaction();
try {
foreach($a_result as $k => $j){
$foo = ($j['val1'] >= $j['val2']) ? 1 : 0 ;
$a_data = array('bar' => $foo);
$where['id = ?'] = $k;
$update = $this->_db->update($this->_name, $a_data, $where);
}
$this->_db->commit();
} catch (Exception $e) {
$this->_db->rollBack();
echo $e->getMessage();
}
Все мои запросы выглядят так:
foo
SET bar
=? ГДЕ (id = 39)foo
SET bar
=? ГДЕ (id = 40)Этот код работает для меня, попробуйте поместить его в свою петлю и посмотреть, помогает ли она :)
$a_data = array(
'bar' => $foo
);
$_where = array();
$_where[] = "id = '" . $k . "'";
Кроме того, я думаю, что ваша проблема находится в $, где это написано странным образом. Обычно я использую для выбора
->where('ID = ? ', $k)
В вашем случае я бы использовал
$where = $this->_yourTable->getAdapter()->quoteInto('id = ?', $id)
Во всяком случае, первый должен быть проще!