Annotation of embedaddon/php/ext/pdo/tests/bug_39656.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: PDO Common: Bug #39656 (Crash when calling fetch() on a PDO statment object after closeCursor())
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded('pdo')) die('skip');
! 6: $dir = getenv('REDIR_TEST_DIR');
! 7: if (false == $dir) die('skip no driver');
! 8: require_once $dir . 'pdo_test.inc';
! 9: PDOTest::skip();
! 10: ?>
! 11: --FILE--
! 12: <?php
! 13:
! 14: if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
! 15: require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
! 16: $db = PDOTest::factory();
! 17:
! 18: @$db->exec("DROP TABLE test");
! 19: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
! 20:
! 21: $db->exec("CREATE TABLE test (id INTEGER NOT NULL PRIMARY KEY, usr VARCHAR( 256 ) NOT NULL)");
! 22: $db->exec("INSERT INTO test (id, usr) VALUES (1, 'user')");
! 23:
! 24: $stmt = $db->prepare("SELECT * FROM test WHERE id = ?");
! 25: $stmt->bindValue(1, 1, PDO::PARAM_INT );
! 26: $stmt->execute();
! 27: $row = $stmt->fetch();
! 28: var_dump( $row );
! 29:
! 30: $stmt->execute();
! 31: $stmt->closeCursor();
! 32: $row = $stmt->fetch(); // this line will crash CLI
! 33: var_dump( $row );
! 34:
! 35: @$db->exec("DROP TABLE test");
! 36: echo "Done\n";
! 37: ?>
! 38: --EXPECT--
! 39: array(4) {
! 40: ["id"]=>
! 41: string(1) "1"
! 42: [0]=>
! 43: string(1) "1"
! 44: ["usr"]=>
! 45: string(4) "user"
! 46: [1]=>
! 47: string(4) "user"
! 48: }
! 49: bool(false)
! 50: Done
! 51:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>