Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PDO: буферизация запросов. 
:(
    Опции темы
Mal Hack
Дата 1.8.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Есть несколько идущих подряд вот таких вызовов с обработкой результата:
Код

            $dbh = $this->kerPDO( "sqlGlobalGetUser" , array( ":user_nick" => $_COOKIE['session_user'] ) );

Метод:
Код

        protected function kerPDO( $query , $params )
        {
            if( ! method_exists( $this , $query ) )
            {    throw new PDOException( "Unknown query: " . $query );    }
            
            $dbh = $this->PDO->prepare( call_user_func( array( $this , $query ) ) );
            $dbh->execute( $params );

            return $dbh;
        }

Т.е. это в принципе выделенные в один метод вызов работы PDO функций. Первый параметр - метод, где хранится запрос, второй - масив параметров для bindParam.
Дык вот, если перед
Код

            $dbh = $this->kerPDO( "sqlGlobalGetUser" , array( ":user_nick" => $_COOKIE['session_user'] ) );

не делать 
Код

$dbh = null;

Будем получать ошибку:
Цитата

DataBase failed. Error: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.

Сразу скажу, что установка PDO::MYSQL_ATTR_USE_BUFFERED_QUERY отменяется, т.к. скрипт должен иметь возможность работать с разными базами. Хотя как крайней вариант - можно использовать.

В общем, сабж заключается в том, как убрать ошибку, убрав обнуление $dbh - PDOStatment.

Это сообщение отредактировал(а) Mal Hack - 1.8.2006, 14:05
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.2210 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.