|  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
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
Solve the problem:
11 - 7 = ?
Subscribe to this entry?

 [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-2022 The PHP Group
All rights reserved.
Last updated: Mon Dec 05 18:03:43 2022 UTC