SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.05.2011 15:09:45

bodik10
Участник
Зарегистрирован: 18.05.2011
Сообщений: 1

General error: 2014 Cannot execute queries while other unbuffered queries are active

Здравствуйте.

Нужна помощь профессионалов. Самому разобраться уже нет сил mad.

Суть проблемы: после вызова хранимой процедуры выдает ошибку:

Fatal 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. in C:\...database_handler.php on line 43

Собственно говоря, сама процедура исполняется успешно, НО первый же любой запрос после нее выдает Fatal error.

Причину проблемы после многочасовых поисках на форумах определил: дело в том что в хранимой процедуре используются несколько инструкций через разделитель ( ; ). Если каждую инструкцию заключить в отдельный запрос - проблем нет. Но это не выход.

Использую PHP 5.2.11, MySQL 5.5.12, для доступа к базе - библиотеку PDO.
Переустановка сервера (сейчас стоит последняя 5.5.12) и замена библиотеки PDO результатов не дали.

Надеюсь на помощь.

Отредактированно bodik10 (18.05.2011 15:10:12)

Неактивен

 

#2 19.05.2011 02:31:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: General error: 2014 Cannot execute queries while other unbuffered queries are active

Насколько я понимаю, проблема с PHP, а не с MySQL. В PHP есть два способа
обратиться к MySQL — mysql и mysqli. Первый способ очень плохо работает
с хранимыми процедурами, соответственно, если Ваша PDO не может исполь-
зовать mysqli, нужно от нее отказаться (ну или аккуратно обойти).

В любом случае, сначала попробуйте выполнить процедуру на честном mysqli,
проблема должна исчезнуть.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson