Zend_Db_Adapter_Abstract :: update () должен быть массивом - PullRequest
2 голосов
/ 04 июля 2011

У меня возникли проблемы с обновлением строки.

Мой класс расширяется Zend_Db_Table_Abstract

Вот мой код:

return $this->update(
            array('data' => $data),
            $this->getAdapter()->quoteInto("id = ?", $id)
        ) ? true : false;

Исключение, которое я продолжаю получать: PHP Catchable fatal error: Argument 2 passed to Zend_Db_Adapter_Abstract::update() must be an array, string given, called in /Applications/MAMP/htdocs/app/library/Session/Handler.php on line 51 and defined in /Applications/MAMP/libraries/zend-framework/ZendFramework-1.11.3-minimal/library/Zend/Db/Adapter/Abstract.php on line 587

Я также пытался передать массив, но ничего не происходит. Есть идеи?!

1 Ответ

0 голосов
/ 23 ноября 2011

Вы можете использовать массив во втором аргументе -> update ()

пример:

 $this->update(
    array('data' => $data),
    array("id = ?" => $id),
 ) ? true : false;

но строка должна быть в порядке

, потому что

/**
 * Convert an array, string, or Zend_Db_Expr object
 * into a string to put in a WHERE clause.
 *
 * @param mixed $where
 * @return string
 */
protected function _whereExpr($where)
{
    if (empty($where)) {
        return $where;
    }
    **if (!is_array($where)) {**
        $where = array($where);
    }
...