Как я могу выполнять несколько процедур непрерывно?

Вот мой код:

$query = "CALL user_top_categories_score(?, 'ALL', 0, 1)"; $sth = $this->dbh->prepare($query); $sth->execute([$user_id]); $category = $sth->fetchAll(PDO::FETCH_ASSOC); $query = "CALL user_top_tags_score(?, 'ALL', 0, 3)"; $sth = $this->dbh->prepare($query); $sth->execute([$user_id]); $tags = $sth->fetchAll(PDO::FETCH_ASSOC); 

Это порождает эту ошибку:

Fatal error: Uncaught PDOException: SQLSTATE [HY000]: Общая ошибка: 2014 Невозможно выполнить запросы, в то время как другие небуферизованные запросы активны. Рассмотрим использование PDOStatement :: fetchAll (). Кроме того, если ваш код будет работать только с mysql, вы можете включить буферизацию запросов, установив атрибут PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY. в C: \ xampp \ htdocs \ myweb \ others \ user.php: 71 Трассировка стека: # 0 C: \ xampp \ htdocs \ myweb \ others \ user.php (71): PDO-> prepare ('CALL user_top_t .. . ') # 1 C: \ xampp \ htdocs \ myweb \ application \ other.php (24): user-> index () # 2 C: \ xampp \ htdocs \ myweb \ index.php (152): require_once (' C: \ xampp \ htdocs … ') # 3 {main} выбрано в C: \ xampp \ htdocs \ myweb \ others \ user.php в строке 71

Также я использовал closeCursor() сразу после fetchAll() на основе этого решения . Но, к сожалению, это порождает новую ошибку:

Предупреждение. Пакеты не работают. Ожидаемое 1 получено 9. Размер пакета = 7 в C: \ xampp \ htdocs \ myweb \ others \ user.php в строке 72

Предупреждение: PDO :: prepare (): сервер MySQL ушел в C: \ xampp \ htdocs \ myweb \ others \ user.php в строке 72

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [HY000]: Общая ошибка: 2006 Сервер MySQL ушел в C: \ xampp \ htdocs \ myweb \ others \ user.php: 72 Трассировка стека: # 0 C: \ xampp \ htdocs \ myweb \ others \ user.php (72): PDO-> prepare ('CALL user_top_t …') # 1 C: \ xampp \ htdocs \ myweb \ application \ other.php (24): user-> index () # 2 C: \ xampp \ htdocs \ myweb \ index.php (152): require_once ('C: \ xampp \ htdocs …') # 3 {main} выбрано в C: \ xampp \ htdocs \ myweb \ others \ user .php в строке 72

Любая идея, как я могу исправить проблему?


Отмечено 1: Каждый из вышеперечисленных запросов работает отдельно. Я имею в виду, когда я называю одну процедуру, она работает.

Noted2: Каждая процедура возвращает набор результатов. Я имею в виду, что в этих процедурах есть SELECT .

Solutions Collecting From Web of "Как я могу выполнять несколько процедур непрерывно?"