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>