Как использовать несколько условий в операторе обновления с Zend_Db и QuoteInto - PullRequest
16 голосов
/ 12 июня 2011

Используя Zend Framework, есть ли способ передать несколько условий в оператор обновления с помощью метода quoteInto? Я нашел несколько ссылок на эту проблему, но я ищу поддерживаемый способ без расширения Zend_Db или без конкатенации.

$db = $this->getAdapter();
$data = array('profile_value' => $form['profile_value']);
$where = $db->quoteInto('user_id = ?', $form['id'])
       . $db->quoteInto(' AND profile_key = ?', $key);         
$this->update($data, $where);

Ссылки

Ответы [ 3 ]

21 голосов
/ 12 июня 2011

Вы можете использовать тип array для аргумента $where.Элементы будут объединены с оператором AND:

$where = array();
$where[] = $this->getAdapter()->quoteInto('user_id = ?', $form['id']);
$where[] = $this->getAdapter()->quoteInto('key = ?', $key);
$this->update(array('value' => $form['value']), $where);
15 голосов
/ 14 мая 2012

С версии 1.8 вы можете использовать:

$where = array(
    'name = ?' => $name,
    'surname = ?' => $surname
);
$db->update($data, $where);
0 голосов
/ 09 мая 2012

Просто обновить приведенный выше ответ

$data = array('value' => $form['value']);
$where = array();
$where[] = $this->getAdapter()->quoteInto('user_id = ?', $form['id']);   
$where[] = $this->getAdapter()->quoteInto('key = ?', $key);
$this->update($data, $where);
...