Как динамически добавить оператор PDO в массив? - PullRequest
1 голос
/ 02 марта 2012

Как динамически добавить оператор PDO в массив?
Я хотел бы написать функцию, как в примере:

function executePreparedQRY($QueryString, $ArrayParams, $UseBufferedQry = FALSE) {
    if ($UseBufferedQry) {
        $ArrayParams[] = PDO::MYSQL_ATTR_USE_BUFFERED_QUERY;
    }
    return $statement = Zend_Db_Table::getDefaultAdapter()->prepare($QueryString)->execute($ArrayParams);
} 

Но PDO::MYSQL_ATTR_USE_BUFFERED_QUERY всегда понимается как другой параметр запроса, а незаявление PDO.Итак, как мне включить PDO::MYSQL_ATTR_USE_BUFFERED_QUERY в оператор выполнения в зависимости от значения $UseBufferedQry?

1 Ответ

2 голосов
/ 02 марта 2012

На самом деле, вы должны использовать это в prepare, а не в execute.

return $statement = Zend_Db_Table::getDefaultAdapter()
    ->prepare($QueryString, array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true))
    ->execute($ArrayParams);

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY документы

Так что для ваших целей, вы можете сделать что-то вроде:

$PrepareParams=array();
if ($UseBufferedQry) {
    $PrepareParams[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true;
}

return $statement = Zend_Db_Table::getDefaultAdapter()
    ->prepare($QueryString, $PrepareParams)
    ->execute($ArrayParams);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...