Loading...
PHP/MySQL | PDO :: Ubuffered queryes
<?php
// Подключение к БД
$connect = new PDO(

// Хост, имя базы, кодировка
'mysql:host=' . $sys['db']['db_host'] . ';dbname=' . $sys['db']['db_name'] . ';charset=utf8',

// Юзер
$sys['db']['db_user'],

// Пароль
$sys['db']['db_pass'],

// Атрибуты
[

// Режим сообщений об ошибках
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

/* Буферизованные запросы
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,*/

// Режим выборки данных по умолчанию
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

// Эмуляция подготавливаемых запросов

PDO::ATTR_EMULATE_PREPARES => false

]

);

// ниже запросы и т. п.

Возникает ошибка:
Fatal error: Uncaught PDOException: 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.

Как исправить? Уже многое перепообовал:-(
________
посл. ред. 05.01.2018 в 13:22; всего 2 раз(а); by rekmixa
rekmixa, https://goo.gl/sZYEG5
потому что fetchAll() не будет работать с INSERT и UPDATE
PhpStorm, я fetchAll использую только в SELECT,
INSERT и UPDATE - exec
shadrvlad, в подробностях ошибки указывает на этот запрос:
$sum_payment = $connect->query("select sum(`money`) from `payment` where `status` = '1'")->fetchColumn() ?? 0;
rekmixa (05.01.2018 в 13:46)
shadrvlad, в подробностях ошибки указывает на этот запрос:
$sum_payment = $connect->query("select sum(`money`) from `payment` where `status` = '1'")->fetchColumn() ?? 0;


sum(`money`) AS `money` from ...

fetchColumn() ?? 0 - заменить на fetch()
um(`money`) AS `money` from ...

fetchColumn() ?? 0 - заменить на fetch()
Когда включаю режим эмуляции - ошибок нетГг
Онлайн: 3
Время:
Gen. 0.1025
(c) Bym.Guru 2010-2025