php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #80808 PDO returns ZEROFILL integers without leading zeros
Submitted: 2021-02-27 10:44 UTC Modified: 2021-03-01 15:57 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: matty at themad dot com dot au Assigned:
Status: Closed Package: PDO MySQL
PHP Version: Next Minor Version OS: Windows
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 you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: matty at themad dot com dot au
New email:
PHP Version: OS:

 

 [2021-02-27 10:44 UTC] matty at themad dot com dot au
Description:
------------
PDO originally returns integers and floats as a string. As of PHP 8.1 it will return them as integers.

Note: A ZEROFILL integer is where an integer will be left padded with 0's until it reaches a certain length.

Since PHP doesn't support leading zero's in an integer they're removed.

8.0.2
string(10) "0742130050"

8.1.0-dev
int(742130050)

PDO should not lose data.

The solution I suggest is 

Test script:
---------------
CREATE TABLE test ( `postcode` INT(4) UNSIGNED ZEROFILL NULL );
INSERT INTO test (`postcode`) VALUES ('0800');
SELECT * FROM test;
MariaDB [schools]> SELECT * FROM test;
+----------+
| postcode |
+----------+
|     0800 |
+----------+
1 row in set (0.000 sec)

$stmt = $pdo->prepare('SELECT * FROM test;');
$stmt->execute();
$result = $stmt->fetchObject();
var_dump($result->postcode);

Expected result:
----------------
string(4) "0800"

Actual result:
--------------
int(800)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-02-27 21:21 UTC] requinix@php.net
Discussion: https://externals.io/message/113294
 [2021-03-01 15:57 UTC] nikic@php.net
-Status: Open +Status: Verified
 [2021-03-01 15:57 UTC] nikic@php.net
Same behavior for emulated and native prepares.
 [2021-03-02 09:59 UTC] nikic@php.net
Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=3a867b982755501b514d19418086972a0cc693e7
Log: Fixed bug #80808
 [2021-03-02 09:59 UTC] nikic@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Dec 27 00:01:30 2024 UTC