Zend_Db_Select where () и Zend_Db_Adapter quoteInto () - PullRequest
1 голос
/ 20 мая 2010

Являются ли метод Zend_Db_Select where (), когда он включает необязательное значение to only, и методы quoteInto () Zend_Db_Adapte в основном такими же, как экранирование SQL?

Другими словами, являются ли эти две цитаты одинаковыми и одинаково безопасными?

$select->where($this->getAdapter()->quoteInto('id = ?', 3));

$select->where(id = ?, 3);

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Zend_Db_Select :: _, где () использует Zend_Db_Abstract :: quoteInto () для кавычек значений, которые вы указываете в качестве второго параметра в Zend_Db_Select :: where () при сборке строки sql.

Из строки 983 Zend_Db_Select:

/**
 * Internal function for creating the where clause
 *
 * @param string   $condition
 * @param mixed    $value  optional
 * @param string   $type   optional
 * @param boolean  $bool  true = AND, false = OR
 * @return string  clause
 */
protected function _where($condition, $value = null, $type = null, $bool = true)
{
    if (count($this->_parts[self::UNION])) {
        require_once 'Zend/Db/Select/Exception.php';
        throw new Zend_Db_Select_Exception("Invalid use of where clause with " . self::SQL_UNION);
    }

    if ($value !== null) {
        $condition = $this->_adapter->quoteInto($condition, $value, $type);
    }

    $cond = "";
    if ($this->_parts[self::WHERE]) {
        if ($bool === true) {
            $cond = self::SQL_AND . ' ';
        } else {
            $cond = self::SQL_OR . ' ';
        }
    }

    return $cond . "($condition)";
}
0 голосов
/ 20 мая 2010

Насколько я понимаю, где это уже так, указав это было бы излишним.

...