? вместо значения с обновлением Zend

0

Я пытаюсь сделать запросы обновлений с помощью 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();
}

Все мои запросы выглядят так:

  • UPDATE foo SET bar =? ГДЕ (id = 39)
  • UPDATE foo SET bar =? ГДЕ (id = 40)
  • [...]
Теги:
zend-framework
insert-update

1 ответ

0
Лучший ответ

Этот код работает для меня, попробуйте поместить его в свою петлю и посмотреть, помогает ли она :)

$a_data = array(
            'bar' => $foo
);

$_where = array();
$_where[] = "id = '" . $k . "'";

Кроме того, я думаю, что ваша проблема находится в $, где это написано странным образом. Обычно я использую для выбора

->where('ID = ? ', $k)

В вашем случае я бы использовал

$where = $this->_yourTable->getAdapter()->quoteInto('id = ?', $id)

Во всяком случае, первый должен быть проще!

  • 0
    Это лучше работает с этим синтаксисом, спасибо. Между прочим, синтезатор, который я использую выше, показан в документации Zend 1.x.
  • 0
    Я тоже использую Zend 1.12, но, честно говоря, я никогда не пробовал ваш синтаксис, так как этот работал. Я не могу исключить, что есть лучший способ, но я рад, что это помогло вам :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню