Bug #68788 [NEW]: PDO-MySQL fetch() does not return correct type of DB field

From: Date: Sat, 10 Jan 2015 14:55:04 +0000
Subject: Bug #68788 [NEW]: PDO-MySQL fetch() does not return correct type of DB field
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-189863@lists.php.net to get a copy of this message
From: jon dot dufresne at gmail dot com Operating system: Linux PHP version: 5.5.20 Package: PDO MySQL Bug Type: Bug Bug description:PDO-MySQL fetch() does not return correct type of DB field Description: ------------ When fetching data from a MySQL database, the type of the field is ignored and the column data is always returned as a string. Constrast this with the PostgreSQL driver which does return the type of the field. The test script below demonstrates an integer field is retruned as a string for MySQL but properly returned as an int for PostgreSQL. Test script: --------------- <?php $db = new PDO('pgsql:dbname=test', 'postgres'); $db->exec('DROP TABLE IF EXISTS test_table'); $db->exec('CREATE TABLE test_table (field integer)'); $db->exec('INSERT INTO test_table VALUES (5)'); $stmt = $db->query('SELECT * FROM test_table'); var_dump($stmt->fetch()); $db = new PDO('mysql:dbname=test', 'postgres'); $db->exec('DROP TABLE IF EXISTS test_table'); $db->exec('CREATE TABLE test_table (field integer)'); $db->exec('INSERT INTO test_table VALUES (5)'); $stmt = $db->query('SELECT * FROM test_table'); var_dump($stmt->fetch()); Expected result: ---------------- array(2) { 'field' => int(5) [0] => int(5) } array(2) { 'field' => int(5) [0] => int(5) } Actual result: -------------- array(2) { 'field' => int(5) [0] => int(5) } array(2) { 'field' => string(1) "5" [0] => string(1) "5" } -- Edit bug report at https://bugs.php.net/bug.php?id=68788&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=68788&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=68788&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=68788&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=68788&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=68788&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=68788&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=68788&r=needscript Try newer version: https://bugs.php.net/fix.php?id=68788&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=68788&r=support Expected behavior: https://bugs.php.net/fix.php?id=68788&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=68788&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=68788&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=68788&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=68788&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=68788&r=dst IIS Stability: https://bugs.php.net/fix.php?id=68788&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=68788&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=68788&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=68788&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=68788&r=mysqlcfg

« previous php.bugs (#189863) next »