--TEST-- Bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when using FETCH_CLASSTYPE) --SKIPIF-- --FILE-- setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdoDb->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); $pdoDb->query('DROP TABLE IF EXISTS testz'); $pdoDb->query('CREATE TABLE testz (name VARCHAR(20) NOT NULL, value INT)'); $pdoDb->query("INSERT INTO testz VALUES ('myclass', 1), ('myclass2', 2), ('myclass', NULL), ('myclass3', NULL)"); $stmt = $pdoDb->prepare("SELECT * FROM testz"); var_dump($stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_GROUP)); $stmt->execute(); var_dump($stmt->fetch()); var_dump($stmt->fetch()); var_dump($stmt->fetchAll()); ?> --CLEAN-- exec('DROP TABLE IF EXISTS testz'); ?> --EXPECTF-- bool(true) myclass::__construct() object(myclass)#%d (1) { ["value"]=> string(1) "1" } myclass::__construct() object(myclass2)#%d (1) { ["value"]=> string(1) "2" } myclass::__construct() array(2) { [0]=> object(myclass)#%d (1) { ["value"]=> NULL } [1]=> object(stdClass)#%d (1) { ["value"]=> NULL } }