Ошибка pdo mysql при использовании хранимых процедур с select

Димон

Новичок
Ошибка pdo mysql при использовании хранимых процедур с select

При использовании хранимых процедур MySQL через PDO возникает ошибка, которая появляется если дважды вызывать хранимых процедур, возвращаюшую значение через селект:

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.

Пример хранимки:
...
begin
select * from user;
end

Погуглил, но решения не нашел.

1) Пробовал ставить setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true) - не помогает
2) fetchAll() - тоже не помогает
3) closeCursor() перед возвращением данных - не помогает

Кто сталкивался с такой проблемой?

-~{}~ 10.04.10 21:18:

Использую php 5.2.12, mysql 5.1.45
 

Mols

Новичок
http://phpclub.ru/talk/showthread.php?s=&threadid=93403 - было что-то подобное. Там правда без ПДО, но думаю похожее что-то.
 

Димон

Новичок
Автор оригинала: Mols
http://phpclub.ru/talk/showthread.php?s=&threadid=93403 - было что-то подобное. Там правда без ПДО, но думаю похожее что-то.
Спасибо, но не помогает. По логике, закрытие курсора должно освобождать соединение для вызова нового запроса. Но не работает.

В общем пока единственное решение это переподключаться к базе. Благо что соединение php -> mysql устанавливается исключительно быстро.
 

Mols

Новичок
http://ua.php.net/manual/en/pdostatement.nextrowset.php ради интереса проверил бы.
 

O1&g

Новичок
Если я правильно понял, то тебе нужно обнулить(null) PDOStatement, перед следующим запросом.
 

Димон

Новичок
Автор оригинала: O1&g
Если я правильно понял, то тебе нужно обнулить(null) PDOStatement, перед следующим запросом.
По ходу такая ошибка вылазит только на виндовых машинах. На работе пользуюсь Ubuntu 9.10, там такой ошибки не наблюдается.
 
Сверху