From: Operating system: Windows 7 / Debian PHP version: 5.3.2 Package: PDO related Bug Type: Bug Bug description:bindColumn creates Warning regardless of ATTR_ERRMODE settings
Description: ------------ If you call bindColumn on a non existent column it will always create a warning, no matter how the PDO object is configured to respond to errors (ERRMODE_EXCEPTION, ERRMODE_SILENT, ERRMODE_WARNING). I actually recreated this on PHP 5.3.1 and PHP 5.2.6-1+lenny8 (from Debian Lenny repository) and have NOT tried it on 5.3.2. Since I was not able to find any references for this bug on the web, I believe I might be the first one to encounter it and it is propably not fixed as of PHP 5.3.2 Test script: --------------- $pdo = new PDO('mysql:host=localhost;dbname=db', 'root', ''); $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $statement = $pdo->prepare('SELECT id FROM aTable'); $statement->execute(); $field= NULL; try { $statement->bindColumn('none_existent_field', $field, PDO::PARAM_INT); while ($statement->fetch( PDO::FETCH_BOUND )) { echo $field. "<br/>\n"; } } catch (PDOException $e) { echo "Database field not in result set!<br/>\n"; } Expected result: ---------------- The string "Database field not in result set!<br/>\n"; Actual result: -------------- A warning: <b>Warning</b>: PDOStatement::bindColumn() [<a href='pdostatement.bindcolumn'>pdostatement.bindcolumn</a>]: Did not found column name 'none_existent_field' in the defined columns; it will not be bound in <b>/path/to/script.php</b> on line <b>10</b><br /> -- Edit bug report at http://bugs.php.net/bug.php?id=52104&edit=1 -- Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=52104&r=trysnapshot52 Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=52104&r=trysnapshot53 Try a snapshot (trunk): http://bugs.php.net/fix.php?id=52104&r=trysnapshottrunk Fixed in SVN: http://bugs.php.net/fix.php?id=52104&r=fixed Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=52104&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=52104&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=52104&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=52104&r=needscript Try newer version: http://bugs.php.net/fix.php?id=52104&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=52104&r=support Expected behavior: http://bugs.php.net/fix.php?id=52104&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=52104&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=52104&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=52104&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=52104&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=52104&r=dst IIS Stability: http://bugs.php.net/fix.php?id=52104&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=52104&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=52104&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=52104&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=52104&r=mysqlcfg