我正在使用 Zend Framework 1.12.3,我注意到使用“?” where 子句中的占位符会减慢进程:
$query = $this->getDbTable()->select()
->from($this->getDbTable(), array('id'))
->where('id = ?', $id);
明显慢于:
$query = $this->getDbTable()->select()
->from($this->getDbTable(), array('id'))
->where('id =' . $id);
下面是 getDbTable 和 setDbTable 方法,而 $_dbTable 是受保护的属性:
public function setDbTable($dbTable)
{
if (is_string($dbTable)) {
$dbTable = new $dbTable();
}
if (!$dbTable instanceof Zend_Db_Table_Abstract) {
throw new Exception('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
return $this;
}
public function getDbTable()
{
if (null === $this->_dbTable) {
$this->setDbTable('V1_Model_DbTable_Users');
}
return $this->_dbTable;
}
和 V1_Model_DbTable_Users 类:
class V1_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
}
有没有人遇到过同样的问题?你有什么解决办法?谢谢