Annotation of embedaddon/php/ext/pdo_mysql/tests/bug46292.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when using FETCH_CLASSTYPE)
! 3: --SKIPIF--
! 4: <?php
! 5: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
! 6: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
! 7: MySQLPDOTest::skip();
! 8: if (version_compare(PHP_VERSION, '5.1.0', '<'))
! 9: die("skip Needs 5.1.0 and Interface Serializable");
! 10: ?>
! 11: --FILE--
! 12: <?php
! 13:
! 14: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
! 15: $pdoDb = MySQLPDOTest::factory();
! 16:
! 17:
! 18: class myclass implements Serializable {
! 19: public function __construct() {
! 20: printf("%s()\n", __METHOD__);
! 21: }
! 22:
! 23: public function serialize() {
! 24: printf("%s()\n", __METHOD__);
! 25: return "any data from serialize()";
! 26: }
! 27:
! 28: public function unserialize($dat) {
! 29: printf("%s(%s)\n", __METHOD__, var_export($dat, true));
! 30: return $dat;
! 31: }
! 32: }
! 33:
! 34: class myclass2 extends myclass { }
! 35:
! 36: $pdoDb->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
! 37: $pdoDb->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
! 38:
! 39: $pdoDb->query('DROP TABLE IF EXISTS testz');
! 40:
! 41: $pdoDb->query('CREATE TABLE testz (name VARCHAR(20) NOT NULL, value INT)');
! 42:
! 43: $pdoDb->query("INSERT INTO testz VALUES ('myclass', 1), ('myclass2', 2), ('myclass', NULL), ('myclass3', NULL)");
! 44:
! 45: $stmt = $pdoDb->prepare("SELECT * FROM testz");
! 46:
! 47: var_dump($stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_GROUP));
! 48: $stmt->execute();
! 49:
! 50: var_dump($stmt->fetch());
! 51: var_dump($stmt->fetch());
! 52: var_dump($stmt->fetchAll());
! 53: ?>
! 54: --CLEAN--
! 55: <?php
! 56: require dirname(__FILE__) . '/mysql_pdo_test.inc';
! 57: $db = MySQLPDOTest::factory();
! 58: $db->exec('DROP TABLE IF EXISTS testz');
! 59: ?>
! 60: --EXPECTF--
! 61: bool(true)
! 62: myclass::__construct()
! 63: object(myclass)#%d (1) {
! 64: [%u|b%"value"]=>
! 65: %unicode|string%(1) "1"
! 66: }
! 67: myclass::__construct()
! 68: object(myclass2)#%d (1) {
! 69: [%u|b%"value"]=>
! 70: %unicode|string%(1) "2"
! 71: }
! 72: myclass::__construct()
! 73: array(2) {
! 74: [0]=>
! 75: object(myclass)#%d (1) {
! 76: [%u|b%"value"]=>
! 77: NULL
! 78: }
! 79: [1]=>
! 80: object(stdClass)#%d (1) {
! 81: [%u|b%"value"]=>
! 82: NULL
! 83: }
! 84: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>