Annotation of embedaddon/php/ext/pdo_mysql/tests/pdo_mysql_subclass.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: MySQL PDOStatement->execute()/fetch(), Non-SELECT
        !             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.0.0', '<'))
        !             9:        die("skip Requires PHP 5.0+");
        !            10: ?>
        !            11: --FILE--
        !            12: <?php
        !            13:        require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
        !            14: 
        !            15:        // No silly strict mode warnings, please!
        !            16:        error_reporting(E_ALL^E_STRICT);
        !            17:        ini_set('display_errors', false);
        !            18: 
        !            19:        try {
        !            20: 
        !            21:                class MyPDO extends PDO {
        !            22: 
        !            23:                        public function __construct() {
        !            24:                                $this->protocol();
        !            25:                                return call_user_func_array(array($this, 'parent::__construct'), func_get_args());
        !            26:                        }
        !            27: 
        !            28:                        public function exec() {
        !            29:                                $this->protocol();
        !            30:                                return call_user_func_array(array($this, 'parent::exec'), func_get_args());
        !            31:                        }
        !            32: 
        !            33:                        public function query() {
        !            34:                                $this->protocol();
        !            35:                                return call_user_func_array(array($this, 'parent::query'), func_get_args());
        !            36:                        }
        !            37: 
        !            38:                        public function __call($method, $args) {
        !            39:                                print "__call(".var_export($method,true).", ".var_export($args, true).")\n";
        !            40:                                // $this->protocol();
        !            41:                        }
        !            42: 
        !            43:                        private function protocol() {
        !            44:                                $stack = debug_backtrace();
        !            45:                                if (!isset($stack[1]))
        !            46:                                        return;
        !            47: 
        !            48:                                printf("%s(", $stack[1]['function']);
        !            49:                                $args = '';
        !            50:                                foreach ($stack[1]['args'] as $k => $v)
        !            51:                                        $args .= sprintf("%s, ", var_export($v, true));
        !            52:                                if ($args != '')
        !            53:                                        printf("%s", substr($args, 0, -2));
        !            54:                                printf(")\n");
        !            55:                        }
        !            56: 
        !            57:                }
        !            58: 
        !            59:                $db = new MyPDO(PDO_MYSQL_TEST_DSN, PDO_MYSQL_TEST_USER, PDO_MYSQL_TEST_PASS);
        !            60:                $db->exec('DROP TABLE IF EXISTS test');
        !            61:                $db->exec('CREATE TABLE test(id INT)');
        !            62:                $db->exec('INSERT INTO test(id) VALUES (1), (2)');
        !            63:                $stmt = $db->query('SELECT * FROM test ORDER BY id ASC');
        !            64:                var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
        !            65:                var_dump($stmt->fetch());
        !            66:                $db->intercept_call();
        !            67: 
        !            68: 
        !            69:        } catch (PDOException $e) {
        !            70:                printf("[001] %s [%s] %s\n",
        !            71:                        $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo()));
        !            72:        }
        !            73: 
        !            74:        $db->exec('DROP TABLE IF EXISTS test');
        !            75:        print "done!\n";
        !            76: ?>
        !            77: --CLEAN--
        !            78: <?php
        !            79: require dirname(__FILE__) . '/mysql_pdo_test.inc';
        !            80: $db = MySQLPDOTest::factory();
        !            81: $db->exec('DROP TABLE IF EXISTS test');
        !            82: ?>
        !            83: --EXPECTF--
        !            84: __construct('%S', '%S', %s)
        !            85: exec('DROP TABLE IF EXISTS test')
        !            86: exec('CREATE TABLE test(id INT)')
        !            87: exec('INSERT INTO test(id) VALUES (1), (2)')
        !            88: query('SELECT * FROM test ORDER BY id ASC')
        !            89: array(2) {
        !            90:   [0]=>
        !            91:   array(1) {
        !            92:     [%u|b%"id"]=>
        !            93:     %unicode|string%(1) "1"
        !            94:   }
        !            95:   [1]=>
        !            96:   array(1) {
        !            97:     [%u|b%"id"]=>
        !            98:     %unicode|string%(1) "2"
        !            99:   }
        !           100: }
        !           101: bool(false)
        !           102: __call('intercept_call', array (
        !           103: ))
        !           104: exec('DROP TABLE IF EXISTS test')
        !           105: done!

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