Annotation of embedaddon/php/ext/pdo_mysql/tests/bug46292.phpt, revision 1.1.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>