php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #81143 BIGINT support
Submitted: 2021-06-15 18:42 UTC Modified: -
From: simbiat at outlook dot com Assigned:
Status: Open Package: PDO Core
PHP Version: 8.0.7 OS:
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2021-06-15 18:42 UTC] simbiat at outlook dot com
Description:
------------
Currently PHP's PDO does not support BIGINT. When using prepared statements with binding, if we want to use bind a BIGINT we can't use PDO::PARAM_INT, since it will fail on PHP's side due to BIGINT being larger than PHP's maximum value for INT. The only alternative option (at least for MySQL) seems to be "use string" (PDO::PARAM_STR), but this can result in strange behavior (https://dba.stackexchange.com/questions/293791/missing-an-inserted-row), which can even lead to loss of data in some circumstances, because (as confirmed in https://bugs.mysql.com/bug.php?id=103992) MySQL does not guarantee valid and consistent comparison of BIGINT [UNSIGNED] vs VARCHAR.
As such PDO needs to have a way to bind BIGINT values.
Of course, one can use casting in the queries to work around the limitation, but that is counterintuitive and easily forgettable.

Test script:
---------------
N/A since feature request

Expected result:
----------------
PDO::PARAM_BIGINT is added to future versions of PHP

Actual result:
--------------
Currently no PDO::PARAM_BIGINT

Patches

Add a Patch

Pull Requests

Add a Pull Request

 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Sat Jul 24 18:01:23 2021 UTC