|  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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
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-2022 The PHP Group
All rights reserved.
Last updated: Tue Nov 29 18:05:52 2022 UTC