Annotation of embedaddon/php/ext/pdo_mysql/tests/bug_41997.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: PDO MySQL Bug #41997 (stored procedure call returning single rowset blocks future queries)
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) die('skip not loaded');
! 6: require dirname(__FILE__) . '/config.inc';
! 7: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
! 8: PDOTest::skip();
! 9:
! 10: $db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
! 11: $row = $db->query('SELECT VERSION() as _version')->fetch(PDO::FETCH_ASSOC);
! 12: $matches = array();
! 13: if (!preg_match('/^(\d+)\.(\d+)\.(\d+)/ismU', $row['_version'], $matches))
! 14: die(sprintf("skip Cannot determine MySQL Server version\n"));
! 15:
! 16: $version = $matches[0] * 10000 + $matches[1] * 100 + $matches[2];
! 17: if ($version < 50000)
! 18: die(sprintf("skip Need MySQL Server 5.0.0+, found %d.%02d.%02d (%d)\n",
! 19: $matches[0], $matches[1], $matches[2], $version));
! 20: ?>
! 21: --FILE--
! 22: <?php
! 23: require dirname(__FILE__) . '/config.inc';
! 24: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
! 25: $db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
! 26:
! 27: $db->exec('DROP PROCEDURE IF EXISTS p');
! 28: $db->exec('CREATE PROCEDURE p() BEGIN SELECT 1 AS "one"; END');
! 29:
! 30: $stmt = $db->query("CALL p()");
! 31: do {
! 32: var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
! 33: } while ($stmt->nextRowset());
! 34: var_dump($stmt->errorInfo());
! 35:
! 36: $stmt = $db->query('SELECT 2 AS "two"');
! 37: var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
! 38: var_dump($stmt->errorInfo());
! 39: print "done!";
! 40: ?>
! 41: --EXPECTF--
! 42: array(1) {
! 43: [0]=>
! 44: array(1) {
! 45: [%u|b%"one"]=>
! 46: %unicode|string%(1) "1"
! 47: }
! 48: }
! 49: array(3) {
! 50: [0]=>
! 51: %unicode|string%(5) "00000"
! 52: [1]=>
! 53: NULL
! 54: [2]=>
! 55: NULL
! 56: }
! 57: array(1) {
! 58: [0]=>
! 59: array(1) {
! 60: [%u|b%"two"]=>
! 61: %unicode|string%(1) "2"
! 62: }
! 63: }
! 64: array(3) {
! 65: [0]=>
! 66: %unicode|string%(5) "00000"
! 67: [1]=>
! 68: NULL
! 69: [2]=>
! 70: NULL
! 71: }
! 72: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>