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);
$_dbTable は保護されたプロパティですが、getDbTable および setDbTable メソッドは次のとおりです。
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';
}
誰かが同じ問題に遭遇しましたか? 解決策はありますか?ありがとう