Annotation of embedaddon/php/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Testing several callbacks using PDO::FETCH_FUNC
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (!extension_loaded('pdo_sqlite')) print 'skip not loaded';
        !             6: ?>
        !             7: --FILE--
        !             8: <?php
        !             9: 
        !            10: $db = new PDO('sqlite::memory:');
        !            11: $db->exec('CREATE TABLE testing (id INTEGER , name VARCHAR)');
        !            12: $db->exec('INSERT INTO testing VALUES(1, "php")');
        !            13: $db->exec('INSERT INTO testing VALUES(2, "")');
        !            14: 
        !            15: $st = $db->query('SELECT * FROM testing');
        !            16: $st->fetchAll(PDO::FETCH_FUNC, function($x, $y) use ($st) { var_dump($st); print "data: $x, $y\n"; });
        !            17: 
        !            18: $st = $db->query('SELECT name FROM testing');
        !            19: var_dump($st->fetchAll(PDO::FETCH_FUNC, 'strtoupper'));
        !            20: 
        !            21: $st = $db->query('SELECT * FROM testing');
        !            22: var_dump($st->fetchAll(PDO::FETCH_FUNC, 'nothing'));
        !            23: 
        !            24: $st = $db->query('SELECT * FROM testing');
        !            25: var_dump($st->fetchAll(PDO::FETCH_FUNC, ''));
        !            26: 
        !            27: $st = $db->query('SELECT * FROM testing');
        !            28: var_dump($st->fetchAll(PDO::FETCH_FUNC, NULL));
        !            29: 
        !            30: $st = $db->query('SELECT * FROM testing');
        !            31: var_dump($st->fetchAll(PDO::FETCH_FUNC, 1));
        !            32: 
        !            33: $st = $db->query('SELECT * FROM testing');
        !            34: var_dump($st->fetchAll(PDO::FETCH_FUNC, array('self', 'foo')));
        !            35: 
        !            36: class foo { 
        !            37:        public function foo($x) {
        !            38:                return "--- $x ---";
        !            39:        }
        !            40: }
        !            41: class bar extends foo {
        !            42:        public function __construct($db) {
        !            43:                $st = $db->query('SELECT * FROM testing');
        !            44:                var_dump($st->fetchAll(PDO::FETCH_FUNC, array($this, 'parent::foo')));
        !            45:        }
        !            46:        
        !            47:        static public function test($x, $y) {
        !            48:                return $x .'---'. $y;
        !            49:        }
        !            50:        
        !            51:        private function test2($x, $y) {
        !            52:                return $x;
        !            53:        }
        !            54:        
        !            55:        public function test3($x, $y) {
        !            56:                return $x .'==='. $y;
        !            57:        }
        !            58: }
        !            59: 
        !            60: new bar($db);
        !            61: 
        !            62: $st = $db->query('SELECT * FROM testing');
        !            63: var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test')));
        !            64: 
        !            65: $st = $db->query('SELECT * FROM testing');
        !            66: var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test2')));
        !            67: 
        !            68: $st = $db->query('SELECT * FROM testing');
        !            69: var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test3')));
        !            70: 
        !            71: $st = $db->query('SELECT * FROM testing');
        !            72: var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'inexistent')));
        !            73: 
        !            74: ?>
        !            75: --EXPECTF--
        !            76: object(PDOStatement)#%d (1) {
        !            77:   [%u|b%"queryString"]=>
        !            78:   %string|unicode%(21) "SELECT * FROM testing"
        !            79: }
        !            80: data: 1, php
        !            81: object(PDOStatement)#%d (1) {
        !            82:   [%u|b%"queryString"]=>
        !            83:   %string|unicode%(21) "SELECT * FROM testing"
        !            84: }
        !            85: data: 2, 
        !            86: array(2) {
        !            87:   [0]=>
        !            88:   %string|unicode%(3) "PHP"
        !            89:   [1]=>
        !            90:   %string|unicode%(0) ""
        !            91: }
        !            92: 
        !            93: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: function 'nothing' not found or invalid function name in %s on line %d
        !            94: bool(false)
        !            95: 
        !            96: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: function '' not found or invalid function name in %s on line %d
        !            97: bool(false)
        !            98: 
        !            99: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: no array or string given in %s on line %d
        !           100: bool(false)
        !           101: 
        !           102: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: no array or string given in %s on line %d
        !           103: bool(false)
        !           104: 
        !           105: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: cannot access self:: when no class scope is active in %s on line %d
        !           106: bool(false)
        !           107: array(2) {
        !           108:   [0]=>
        !           109:   %string|unicode%(9) "--- 1 ---"
        !           110:   [1]=>
        !           111:   %string|unicode%(9) "--- 2 ---"
        !           112: }
        !           113: array(2) {
        !           114:   [0]=>
        !           115:   %string|unicode%(7) "1---php"
        !           116:   [1]=>
        !           117:   %string|unicode%(4) "2---"
        !           118: }
        !           119: 
        !           120: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: cannot access private method bar::test2() in %s on line %d
        !           121: bool(false)
        !           122: array(2) {
        !           123:   [0]=>
        !           124:   %string|unicode%(7) "1===php"
        !           125:   [1]=>
        !           126:   %string|unicode%(4) "2==="
        !           127: }
        !           128: 
        !           129: Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: class 'bar' does not have a method 'inexistent' in %s on line %d
        !           130: bool(false)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>