bug69344.phpt 1.0 KB

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