|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2019-05-05 10:11 UTC] cmb@php.net
-Package: MySQL related
+Package: PDO MySQL
[2020-12-09 16:57 UTC] nikic@php.net
-Status: Open
+Status: Duplicate
[2020-12-09 16:57 UTC] nikic@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 01:00:01 2025 UTC |
Description: ------------ Ubuntu 18.04.2 MySQL 8.0.15 "ALTER VIEW" queries don't work as prepared statements if emulation is disabled. Test script: --------------- $pdo = new PDO('mysql:host=127.0.0.1;port=3306;dbname=database', 'user', 'password', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false, ]); $pdo->prepare('create view `test` as select 1')->execute(); $pdo->prepare('alter view `test` as select 1')->execute(); Expected result: ---------------- Successful query execution. Actual result: -------------- The last line throws an exception: "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."