bug69344.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. PDO PgSQL Bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps)
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
  6. require dirname(__FILE__) . '/config.inc';
  7. require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
  8. PDOTest::skip();
  9. ?>
  10. --FILE--
  11. <?php
  12. require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
  13. $pdo = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
  14. $pdo->setAttribute (\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
  15. $pdo->setAttribute (\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
  16. $test = function () use ($pdo) {
  17. $arr = [
  18. 0 => "a",
  19. 2 => "b",
  20. ];
  21. $stmt = $pdo->prepare("SELECT (?)::text AS a, (?)::text AS b");
  22. try {
  23. $stmt->execute($arr);
  24. var_dump($stmt->fetch());
  25. } catch (\Exception $e) {
  26. echo $e->getMessage()."\n";
  27. }
  28. };
  29. $test();
  30. $pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
  31. $test();
  32. ?>
  33. --EXPECT--
  34. SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
  35. SQLSTATE[HY093]: Invalid parameter number: parameter was not defined