Здравствуйте.
Есть 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 и хранимыми процедурами. Типа там какая то ошибка драйвера или что то типа того. И есть какой то костыль чтобы этот нюанс обойти.
Как победить эту штуку?