|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #81310 Clarify UPGRADING entry (bug?)
Submitted: 2021-07-29 17:37 UTC Modified: 2021-07-29 21:06 UTC
From: Assigned:
Status: Not a bug Package: PDO MySQL
PHP Version: 8.1.0beta1 OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
New email:
PHP Version: OS:


 [2021-07-29 17:37 UTC]
In UPGRADING there's this:
  . Integers and floats in result sets will now be returned using native PHP
    types instead of strings when using emulated prepared statements. This
    matches the behavior of native prepared statements. You can restore the
    previous behavior by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

In my code I don't use prepare()/execute(), nor PDO::ATTR_EMULATE_PREPARES. All I use is query()/fetch(). However, I noticed that I started getting integers instead of strings now.

So, is that a bug? Maybe query() uses prepared queries internally. But then maybe it should be clarified, that it has really nothing to do with prepared statements mode.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2021-07-29 19:01 UTC]
-Status: Open +Status: Not a bug
 [2021-07-29 19:01 UTC]
pdo_mysql enables emulated prepares by default.
 [2021-07-29 21:06 UTC]
> Maybe query() uses prepared queries internally.

Right.  That has recently been clarified in the documentation[1]:

| PDO::query() prepares and executes an SQL statement in a single
| function call, […]

[1] <>
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 08:01:30 2024 UTC