1--TEST-- 2PDO Common: Bug #64172 errorInfo is not properly cleaned up 3--EXTENSIONS-- 4pdo 5--SKIPIF-- 6<?php 7$dir = getenv('REDIR_TEST_DIR'); 8if (false == $dir) die('skip no driver'); 9require_once $dir . 'pdo_test.inc'; 10PDOTest::skip(); 11?> 12--FILE-- 13<?php 14if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/'); 15require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; 16 17$db = PDOTest::factory(); 18 19$db->exec("CREATE TABLE test64172 (x int)"); 20$db->exec("INSERT INTO test64172 VALUES (1)"); 21 22echo "===FAIL===\n"; 23$db->query('SELECT * FROM bad_table'); 24echo "\n"; 25echo "===TEST===\n"; 26var_dump(is_string($db->errorInfo()[0])) . "\n"; 27var_dump(is_int($db->errorInfo()[1])) . "\n"; 28var_dump(is_string($db->errorInfo()[2])) . "\n"; 29echo "===GOOD===\n"; 30$stmt = $db->query('SELECT * FROM test64172'); 31$stmt->fetchAll(); 32$stmt = null; 33var_dump($db->errorInfo()); 34 35echo "===FAIL===\n"; 36$db->exec("INSERT INTO bad_table VALUES(1)"); 37echo "\n"; 38echo "===TEST===\n"; 39var_dump(is_string($db->errorInfo()[0])) . "\n"; 40var_dump(is_int($db->errorInfo()[1])) . "\n"; 41var_dump(is_string($db->errorInfo()[2])) . "\n"; 42echo "===GOOD===\n"; 43$db->exec("INSERT INTO test64172 VALUES (2)"); 44var_dump($db->errorInfo()); 45?> 46--CLEAN-- 47<?php 48require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; 49$db = PDOTest::factory(); 50PDOTest::dropTableIfExists($db, "test64172"); 51?> 52--EXPECTF-- 53===FAIL=== 54 55Warning: PDO::query(): SQLSTATE[%s]: %s 56%A 57===TEST=== 58bool(true) 59bool(true) 60bool(true) 61===GOOD=== 62array(3) { 63 [0]=> 64 string(5) "00000" 65 [1]=> 66 NULL 67 [2]=> 68 NULL 69} 70===FAIL=== 71 72Warning: PDO::exec(): SQLSTATE[%s]: %s 73%A 74===TEST=== 75bool(true) 76bool(true) 77bool(true) 78===GOOD=== 79array(3) { 80 [0]=> 81 string(5) "00000" 82 [1]=> 83 NULL 84 [2]=> 85 NULL 86} 87