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