Задать вопрос
@Dark_Dante

PDO и хранимые процедуры. Почему не работает?

Здравствуйте.
Есть mysql база. Есть три хранимых процедуры в ней.
Первая процедура возвращает нам ID по которому вторая процедура что то там в базе ищет и возвращает новый ID, который передается в третью процедуру
Как то так в общем

$sql=new PDO("вот_коннектимся_к_базе");
$stm1=$sql->prepare('CALL proc1');
$stm1->execute();
$res1=$stm1->fetchAll(PDO::FETCH_ASSOC);

$stm2=$sql->prepare('CALL proc2(:id)');
$stm2->execute(array(':id'=>$res1[0]['id']));
$res2=$stm2->fetchAll(PDO::FETCH_ASSOC);

$stm3=$sql->prepare('CALL proc3(:id)');
$stm3->execute(array(':id'=>$res2[0]['id']));
$res3=$stm3->fetchAll(PDO::FETCH_ASSOC);


В общем первая процедура отрабатывает нормально

А вторая и третья ничего не выдают. Пустой массив.
Если вместо подготовленных запросов использовать query то выводит такую ошибку
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 в true не помогает
Слышал что есть какие то нюансы с работой PDO и хранимыми процедурами. Типа там какая то ошибка драйвера или что то типа того. И есть какой то костыль чтобы этот нюанс обойти.
Как победить эту штуку?
  • Вопрос задан
  • 765 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
mahoho
@mahoho
Full stack certified PHP developer.
Закрывайте курсор после фетча.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽