Search code examples
zend-frameworkzend-db

How to Use Multiple Conditions In An Update Statement With Zend_Db And QuoteInto


Using Zend Framework, is there a way to pass multiple conditions to an update statement using the quoteInto method? I've found some references to this problem but I'm looking for a supported way without having to extend Zend_Db or without concatenation.

$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);

References


Solution

  • You can use an array type for your $where argument. The elements will be combined with the AND operator:

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