2

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'; 
}

誰かが同じ問題に遭遇しましたか? 解決策はありますか?ありがとう

4

2 に答える 2