Zend_Db_Adapter_Abstract :: update()必须是一个数组

时间:2011-07-03 22:17:49

标签: zend-db zend-db-table

我在更新行时遇到了一些麻烦。

我的课程正在扩展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 :(得分:0)

您可以在 - > update()

的第二个参数中使用数组

示例:

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

但字符串必须正常

becouse

/**
 * 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);
    }