bug_77863.phpt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. --TEST--
  2. PDO_Firebird: Bug #76488 PDO Firebird does not support boolean datatype in input parameters
  3. --EXTENSIONS--
  4. pdo_firebird
  5. --SKIPIF--
  6. <?php require('skipif.inc'); ?>
  7. --ENV--
  8. LSAN_OPTIONS=detect_leaks=0
  9. --FILE--
  10. <?php
  11. require 'testdb.inc';
  12. $sql = <<<SQL
  13. with t(b, s) as (
  14. select true, 'true' from rdb\$database
  15. union all
  16. select false, 'false' from rdb\$database
  17. union all
  18. select unknown, 'unknown' from rdb\$database
  19. )
  20. select trim(s) as s from t where b is not distinct from :p
  21. SQL;
  22. try {
  23. $query = $dbh->prepare($sql);
  24. // PDO::PARAM_BOOL
  25. $query->bindValue('p', 0, PDO::PARAM_BOOL);
  26. $query->execute();
  27. var_dump($query->fetchColumn(0));
  28. $query->bindValue('p', 1, PDO::PARAM_BOOL);
  29. $query->execute();
  30. var_dump($query->fetchColumn(0));
  31. $query->bindValue('p', false, PDO::PARAM_BOOL);
  32. $query->execute();
  33. var_dump($query->fetchColumn(0));
  34. $query->bindValue('p', true, PDO::PARAM_BOOL);
  35. $query->execute();
  36. var_dump($query->fetchColumn(0));
  37. $query->bindValue('p', 'false', PDO::PARAM_BOOL);
  38. $query->execute();
  39. var_dump($query->fetchColumn(0));
  40. $query->bindValue('p', 'True', PDO::PARAM_BOOL);
  41. $query->execute();
  42. var_dump($query->fetchColumn(0));
  43. $query->bindValue('p', null, PDO::PARAM_BOOL);
  44. $query->execute();
  45. var_dump($query->fetchColumn(0));
  46. // PDO::PARAM_STR
  47. $query->bindValue('p', false, PDO::PARAM_STR);
  48. $query->execute();
  49. var_dump($query->fetchColumn(0));
  50. $query->bindValue('p', true, PDO::PARAM_STR);
  51. $query->execute();
  52. var_dump($query->fetchColumn(0));
  53. $query->bindValue('p', 0, PDO::PARAM_STR);
  54. $query->execute();
  55. var_dump($query->fetchColumn(0));
  56. $query->bindValue('p', 1, PDO::PARAM_STR);
  57. $query->execute();
  58. var_dump($query->fetchColumn(0));
  59. $query->bindValue('p', 'false', PDO::PARAM_STR);
  60. $query->execute();
  61. var_dump($query->fetchColumn(0));
  62. $query->bindValue('p', 'true', PDO::PARAM_STR);
  63. $query->execute();
  64. var_dump($query->fetchColumn(0));
  65. $query->bindValue('p', null, PDO::PARAM_STR);
  66. $query->execute();
  67. var_dump($query->fetchColumn(0));
  68. // PDO::PARAM_INT
  69. $query->bindValue('p', false, PDO::PARAM_INT);
  70. $query->execute();
  71. var_dump($query->fetchColumn(0));
  72. $query->bindValue('p', true, PDO::PARAM_INT);
  73. $query->execute();
  74. var_dump($query->fetchColumn(0));
  75. $query->bindValue('p', 0, PDO::PARAM_INT);
  76. $query->execute();
  77. var_dump($query->fetchColumn(0));
  78. $query->bindValue('p', 1, PDO::PARAM_INT);
  79. $query->execute();
  80. var_dump($query->fetchColumn(0));
  81. $query->bindValue('p', 'false', PDO::PARAM_INT);
  82. $query->execute();
  83. var_dump($query->fetchColumn(0));
  84. $query->bindValue('p', 'true', PDO::PARAM_INT);
  85. $query->execute();
  86. var_dump($query->fetchColumn(0));
  87. echo "OK\n";
  88. }
  89. catch(Exception $e) {
  90. echo $e->getMessage() . '<br>';
  91. echo $e->getTraceAsString();
  92. }
  93. ?>
  94. --EXPECT--
  95. string(5) "false"
  96. string(4) "true"
  97. string(5) "false"
  98. string(4) "true"
  99. string(5) "false"
  100. string(4) "true"
  101. string(7) "unknown"
  102. string(5) "false"
  103. string(4) "true"
  104. string(5) "false"
  105. string(4) "true"
  106. string(5) "false"
  107. string(4) "true"
  108. string(7) "unknown"
  109. string(5) "false"
  110. string(4) "true"
  111. string(5) "false"
  112. string(4) "true"
  113. string(5) "false"
  114. string(4) "true"
  115. OK