disable_prepares.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. PDO PgSQL PGSQL_ATTR_DISABLE_PREPARES
  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. $db = PDOTest::test_factory(__DIR__ . '/common.phpt');
  16. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  17. $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_COLUMN);
  18. $stmt = $db->prepare("SELECT statement FROM pg_prepared_statements", array(
  19. PDO::ATTR_EMULATE_PREPARES => true));
  20. $stmt2 = $db->prepare("SELECT (?)::int2");
  21. $stmt2->execute(array(1));
  22. var_dump($stmt2->fetch());
  23. $stmt2->execute(array(2));
  24. var_dump($stmt2->fetch());
  25. $stmt->execute();
  26. $first = $stmt->fetchAll();
  27. $stmt3 = $db->prepare("SELECT (?)::int4", array(
  28. PDO::PGSQL_ATTR_DISABLE_PREPARES => true));
  29. $stmt3->execute(array(3));
  30. var_dump($stmt3->fetch());
  31. $stmt3->execute(array(4));
  32. var_dump($stmt3->fetch());
  33. $stmt->execute();
  34. $second = $stmt->fetchAll();
  35. var_dump($first, $second);
  36. ?>
  37. --EXPECT--
  38. string(1) "1"
  39. string(1) "2"
  40. string(1) "3"
  41. string(1) "4"
  42. array(1) {
  43. [0]=>
  44. string(17) "SELECT ($1)::int2"
  45. }
  46. array(1) {
  47. [0]=>
  48. string(17) "SELECT ($1)::int2"
  49. }