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>