Mysql PDO::exec()

weregod

unserializer
Много ржал:
PHP:
$pdo = new PDO(
    "mysql:host=127.0.0.1;dbname=test;charset=utf8mb4",
    "root",
    "",
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    ],
);
$pdo->exec("SELECT 1");
$pdo->exec("SELECT 1");
приводит к
Код:
Fatal error: Uncaught exception 'PDOException' with message '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.'
 

Тугай

Новичок
pdo->exec не для select, в документаци все есть.
То что pdo работает с курсорами на сервере по умолчанию, так это норма для большинства других бд.
В mysql наоборот, по умолчанию предполагается что ты пишешь запросы с limit offset и забираешь все данные сразу на клиент и сервер не грузишь всякими ACID и блокировками. mysql начинался как прикрутить SQL к ISAM так оно и тянется.
Что тебе развесилило то ? :)
 
Сверху