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