Zend数据库的更新和删除方法和引用


Zend Db update and delete method and quoting

由于表update()方法代理数据库适配器update()方法,因此第二个参数可以是一个SQL表达式数组。使用AND操作符将表达式组合为布尔项。注意:SQL表达式中的值和标识符不会为您加引号。如果有需要引用的值或标识符,则由您负责执行此操作。使用数据库适配器的quote()、quoteInto()和quoteIdentifier()方法。

但是当我检查源更新方法时,我看到了一些奇怪的事情(方法执行链):

  • Zend_Db_Table_Abstract::更新()
  • Zend_Db_Adapter_Abstract::更新()
  • Zend_Db_Adapter_Abstract: _whereExpr ()
  • Zend_Db_Adapter_Abstract: quoteInto ()

和Zend_Db_Adapter_Abstract::quoteInto()中有引号。有人能解释一下吗?也许文档已经过时了?

值被引用,文档中的注释指的是您传入的WHERE子句,您需要自己引用它。典型的用法是:

$table->update(array(
    'name' => $name, // this gets quoted
    'email' => $email // as does this
), $db->quoteInto('id = ?', $id));