bug_38394.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. PDO Common: Bug #38394 (Prepared statement error stops subsequent statements)
  3. --EXTENSIONS--
  4. pdo
  5. --SKIPIF--
  6. <?php
  7. $dir = getenv('REDIR_TEST_DIR');
  8. if (false == $dir) die('skip no driver');
  9. if (!strncasecmp(getenv('PDOTEST_DSN'), 'sqlite2', strlen('sqlite2'))) die('skip not relevant for pdo_sqlite2 driver');
  10. require_once $dir . 'pdo_test.inc';
  11. PDOTest::skip();
  12. ?>
  13. --FILE--
  14. <?php
  15. if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
  16. require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
  17. $db = PDOTest::factory();
  18. $db->exec("CREATE TABLE test (a INT, b INT, c INT)");
  19. $s = $db->prepare("INSERT INTO test (a,b,c) VALUES (:a,:b,:c)");
  20. $s->execute(array('a' => 1, 'b' => 2, 'c' => 3));
  21. @$s->execute(array('a' => 5, 'b' => 6, 'c' => 7, 'd' => 8));
  22. $s->execute(array('a' => 9, 'b' => 10, 'c' => 11));
  23. var_dump($db->query("SELECT * FROM test")->fetchAll(PDO::FETCH_ASSOC));
  24. ?>
  25. --EXPECT--
  26. array(2) {
  27. [0]=>
  28. array(3) {
  29. ["a"]=>
  30. string(1) "1"
  31. ["b"]=>
  32. string(1) "2"
  33. ["c"]=>
  34. string(1) "3"
  35. }
  36. [1]=>
  37. array(3) {
  38. ["a"]=>
  39. string(1) "9"
  40. ["b"]=>
  41. string(2) "10"
  42. ["c"]=>
  43. string(2) "11"
  44. }
  45. }