|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-12-13 11:40 UTC] dharman@php.net
-Status: Open
+Status: Duplicate
[2020-12-13 11:40 UTC] dharman@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 05:00:01 2025 UTC |
Description: ------------ This Bugs happens in Version 7.4.13 and 8.0.0. You also need to Create a Table like: CREATE TABLE tabba (id int AUTO_INCREMENT, name varchat(32) NOT NULL); And insert something in it: INSERT INTO tabba (name) VALUES ("Franc"); It is possible to remove the Error an go back to expected behavior when removing "PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION". But is more or less only a workaround. This Bug break functions like Query which creates an PDO Statement and returns an array of the fetchAll result. Test script: --------------- <?php error_reporting(E_ALL); ini_set('display_errors', 1); $_Host = '127.0.0.1'; $_Port = 3306; $_Database = 'test'; $_Charset = 'utf8mb4'; $_DriverOptions = [ PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]; $iDSN = 'mysql:dbname=' . $_Database . ';host=' . $_Host . ';port=' . $_Port . ';charset=' . $_Charset; var_dump($iDSN); $_Hash = hash('sha512', $iDSN); try { $_ObjDb = new PDO($iDSN, 'dbuser', 'dbpassword', $_DriverOptions); } catch (Exception $e) { var_dump($e); exit('Connection to database failed.'); } $iStatement = $_ObjDb->prepare('UPDATE tabba SET name=:name WHERE id = 1'); $iName = 'Frank'; $iStatement->bindParam(':name', $iName); try { var_dump($iStatement->execute()); } catch(PDOException $e) { die($e->getMessage()); } var_dump($iStatement->rowCount()); if ($iStatement->rowCount() > 0) { var_dump($iStatement->fetchAll()); } Expected result: ---------------- In version 7.4.12 and older fetchAll() would return an empty array. Actual result: -------------- Returns an Error that something is unbuffered.