diff options
Diffstat (limited to 'ext/pdo/tests/bug_64172.phpt')
-rw-r--r-- | ext/pdo/tests/bug_64172.phpt | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/ext/pdo/tests/bug_64172.phpt b/ext/pdo/tests/bug_64172.phpt new file mode 100644 index 0000000000..e8949fe597 --- /dev/null +++ b/ext/pdo/tests/bug_64172.phpt @@ -0,0 +1,84 @@ +--TEST-- +PDO Common: Bug #64172 errorInfo is not properly cleaned up +--SKIPIF-- +<?php # vim:ft=php +if (!extension_loaded('pdo')) die('skip'); +$dir = getenv('REDIR_TEST_DIR'); +if (false == $dir) die('skip no driver'); +require_once $dir . 'pdo_test.inc'; +PDOTest::skip(); +?> +--FILE-- +<?php +if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/'); +require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; + +$db = PDOTest::factory(); + +@$db->exec("DROP TABLE test"); +$db->exec("CREATE TABLE test (x int)"); +$db->exec("INSERT INTO test VALUES (1)"); + +echo "===FAIL===\n"; +$db->query('SELECT * FROM bad_table'); +echo "\n"; +echo "===TEST===\n"; +var_dump(is_string($db->errorInfo()[0])) . "\n"; +var_dump(is_int($db->errorInfo()[1])) . "\n"; +var_dump(is_string($db->errorInfo()[2])) . "\n"; +echo "===GOOD===\n"; +$stmt = $db->query('SELECT * FROM test'); +$stmt->fetchAll(); +$stmt = null; +var_dump($db->errorInfo()); + +echo "===FAIL===\n"; +$db->exec("INSERT INTO bad_table VALUES(1)"); +echo "\n"; +echo "===TEST===\n"; +var_dump(is_string($db->errorInfo()[0])) . "\n"; +var_dump(is_int($db->errorInfo()[1])) . "\n"; +var_dump(is_string($db->errorInfo()[2])) . "\n"; +echo "===GOOD===\n"; +$db->exec("INSERT INTO test VALUES (2)"); +var_dump($db->errorInfo()); + +$db->exec("DROP TABLE test"); +?> +===DONE=== +--EXPECTF-- +===FAIL=== + +Warning: PDO::query(): SQLSTATE[%s]: %s +%A +===TEST=== +bool(true) +bool(true) +bool(true) +===GOOD=== +array(3) { + [0]=> + string(5) "00000" + [1]=> + NULL + [2]=> + NULL +} +===FAIL=== + +Warning: PDO::exec(): SQLSTATE[%s]: %s +%A +===TEST=== +bool(true) +bool(true) +bool(true) +===GOOD=== +array(3) { + [0]=> + string(5) "00000" + [1]=> + NULL + [2]=> + NULL +} +===DONE===
\ No newline at end of file |