ID: 44189 Updated by: [EMAIL PROTECTED] Reported By: uwendel at mysql dot com -Status: Open +Status: Closed Bug Type: PDO related Operating System: Linux PHP Version: 5.3CVS-2008-02-20 (CVS) New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. In some cases the attribute value cannot be filtered against a white list, so any value will do. If there is an option to filter invalid params by the driver (which knows about allowable values) it should be done. But filtering of attribute values (the ones relating to the driver) should be done by the driver. I've applied checks for some of the native options just now. Previous Comments: ------------------------------------------------------------------------ [2008-02-20 18:46:49] uwendel at mysql dot com PDO->setAttribute(PDO::ATTR_ORACLE_NULLS, <bogus>) Same story. As said, we can fix those tiny things as we go, if there's consensus to change it. ------------------------------------------------------------------------ [2008-02-20 18:16:14] uwendel at mysql dot com Description: ------------ Question: is there consensus that PDO should use stricter parameter checking. By that I mean primarily that PDO functions follow the "modern" style of bailing out if you pass a non-scalar value parameter which expect a scalar? [1] Like this: $tmp = array() PDO->setAttribute(PDO::ATTR_ERRMODE, $tmp) If everybody agrees, Andrey or Johannes can fix this and similar minor flaws as we continue with the PDO_MYSQLND development. I guess there's a good number of similar flaws. [2] Related, what about this one: $tmp = new stdClass() PDO->setAttribute(PDO::ATTR_ERRMODE, $tmp) Reproduce code: --------------- [1] [EMAIL PROTECTED]:~/php53> sapi/cli/php -r '$pdo=new PDO("sqlite:/tmp/foo.db"); $tmp = array(); var_dump($pdo->setAttribute(PDO::ATTR_ERRMODE, $tmp));' bool(true) [2] [EMAIL PROTECTED]:~/php53> sapi/cli/php -r '$pdo=new PDO("sqlite:/tmp/foo.db"); $tmp = new stdClass(); var_dump($pdo->setAttribute(PDO::ATTR_ERRMODE, $tmp));' bool(true) (may print a notice about the implicit casting) Expected result: ---------------- Warning or similar + bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=44189&edit=1