disable_prepares.phpt 1.3 KB

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