Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Здравствуйте.
Нужна помощь профессионалов. Самому разобраться уже нет сил .
Суть проблемы: после вызова хранимой процедуры выдает ошибку:
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)
Неактивен
Насколько я понимаю, проблема с PHP, а не с MySQL. В PHP есть два способа
обратиться к MySQL — mysql и mysqli. Первый способ очень плохо работает
с хранимыми процедурами, соответственно, если Ваша PDO не может исполь-
зовать mysqli, нужно от нее отказаться (ну или аккуратно обойти).
В любом случае, сначала попробуйте выполнить процедуру на честном mysqli,
проблема должна исчезнуть.
Неактивен
Страниц: 1