bug27303_1_11gR1.phpt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. --TEST--
  2. Bug #27303 (OCIBindByName binds numeric PHP values as characters)
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. require(__DIR__."/connect.inc");
  8. // The bind buffer size edge cases seem to change each DB version.
  9. preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
  10. if (!(isset($matches[0]) && $matches[1] < 12)) {
  11. die("skip expected output only valid when using pre-Oracle 12c database");
  12. }
  13. ?>
  14. --FILE--
  15. <?php
  16. require(__DIR__.'/connect.inc');
  17. $stmtarray = array(
  18. "drop sequence myseq",
  19. "drop table mytab",
  20. "create sequence myseq",
  21. "create table mytab (mydata varchar2(20), seqcol number)"
  22. );
  23. oci8_test_sql_execute($c, $stmtarray);
  24. define('MYLIMIT', 200);
  25. $stmt = "insert into mytab (mydata, seqcol) values ('Some data', myseq.nextval) returning seqcol into :mybv";
  26. $stid = oci_parse($c, $stmt);
  27. if (!$stid) { echo "Parse error"; die; }
  28. $r = oci_bind_by_name($stid, ':MYBV', $mybv);
  29. if (!$r) { echo "Bind error"; die; }
  30. for ($i = 1; $i < MYLIMIT; $i++) {
  31. $r = oci_execute($stid, OCI_DEFAULT);
  32. if (!$r) { echo "Execute error"; die; }
  33. var_dump($mybv);
  34. }
  35. oci_commit($c);
  36. $stmtarray = array(
  37. "drop sequence myseq",
  38. "drop table mytab"
  39. );
  40. oci8_test_sql_execute($c, $stmtarray);
  41. echo "Done\n";
  42. ?>
  43. --EXPECT--
  44. string(1) "1"
  45. string(1) "2"
  46. string(1) "3"
  47. string(1) "4"
  48. string(1) "5"
  49. string(1) "6"
  50. string(1) "7"
  51. string(1) "8"
  52. string(1) "9"
  53. string(1) "1"
  54. string(1) "1"
  55. string(1) "1"
  56. string(1) "1"
  57. string(1) "1"
  58. string(1) "1"
  59. string(1) "1"
  60. string(1) "1"
  61. string(1) "1"
  62. string(1) "1"
  63. string(1) "2"
  64. string(1) "2"
  65. string(1) "2"
  66. string(1) "2"
  67. string(1) "2"
  68. string(1) "2"
  69. string(1) "2"
  70. string(1) "2"
  71. string(1) "2"
  72. string(1) "2"
  73. string(1) "3"
  74. string(1) "3"
  75. string(1) "3"
  76. string(1) "3"
  77. string(1) "3"
  78. string(1) "3"
  79. string(1) "3"
  80. string(1) "3"
  81. string(1) "3"
  82. string(1) "3"
  83. string(1) "4"
  84. string(1) "4"
  85. string(1) "4"
  86. string(1) "4"
  87. string(1) "4"
  88. string(1) "4"
  89. string(1) "4"
  90. string(1) "4"
  91. string(1) "4"
  92. string(1) "4"
  93. string(1) "5"
  94. string(1) "5"
  95. string(1) "5"
  96. string(1) "5"
  97. string(1) "5"
  98. string(1) "5"
  99. string(1) "5"
  100. string(1) "5"
  101. string(1) "5"
  102. string(1) "5"
  103. string(1) "6"
  104. string(1) "6"
  105. string(1) "6"
  106. string(1) "6"
  107. string(1) "6"
  108. string(1) "6"
  109. string(1) "6"
  110. string(1) "6"
  111. string(1) "6"
  112. string(1) "6"
  113. string(1) "7"
  114. string(1) "7"
  115. string(1) "7"
  116. string(1) "7"
  117. string(1) "7"
  118. string(1) "7"
  119. string(1) "7"
  120. string(1) "7"
  121. string(1) "7"
  122. string(1) "7"
  123. string(1) "8"
  124. string(1) "8"
  125. string(1) "8"
  126. string(1) "8"
  127. string(1) "8"
  128. string(1) "8"
  129. string(1) "8"
  130. string(1) "8"
  131. string(1) "8"
  132. string(1) "8"
  133. string(1) "9"
  134. string(1) "9"
  135. string(1) "9"
  136. string(1) "9"
  137. string(1) "9"
  138. string(1) "9"
  139. string(1) "9"
  140. string(1) "9"
  141. string(1) "9"
  142. string(1) "9"
  143. string(1) "1"
  144. string(1) "1"
  145. string(1) "1"
  146. string(1) "1"
  147. string(1) "1"
  148. string(1) "1"
  149. string(1) "1"
  150. string(1) "1"
  151. string(1) "1"
  152. string(1) "1"
  153. string(1) "1"
  154. string(1) "1"
  155. string(1) "1"
  156. string(1) "1"
  157. string(1) "1"
  158. string(1) "1"
  159. string(1) "1"
  160. string(1) "1"
  161. string(1) "1"
  162. string(1) "1"
  163. string(1) "1"
  164. string(1) "1"
  165. string(1) "1"
  166. string(1) "1"
  167. string(1) "1"
  168. string(1) "1"
  169. string(1) "1"
  170. string(1) "1"
  171. string(1) "1"
  172. string(1) "1"
  173. string(1) "1"
  174. string(1) "1"
  175. string(1) "1"
  176. string(1) "1"
  177. string(1) "1"
  178. string(1) "1"
  179. string(1) "1"
  180. string(1) "1"
  181. string(1) "1"
  182. string(1) "1"
  183. string(1) "1"
  184. string(1) "1"
  185. string(1) "1"
  186. string(1) "1"
  187. string(1) "1"
  188. string(1) "1"
  189. string(1) "1"
  190. string(1) "1"
  191. string(1) "1"
  192. string(1) "1"
  193. string(1) "1"
  194. string(1) "1"
  195. string(1) "1"
  196. string(1) "1"
  197. string(1) "1"
  198. string(1) "1"
  199. string(1) "1"
  200. string(1) "1"
  201. string(1) "1"
  202. string(1) "1"
  203. string(1) "1"
  204. string(1) "1"
  205. string(1) "1"
  206. string(1) "1"
  207. string(1) "1"
  208. string(1) "1"
  209. string(1) "1"
  210. string(1) "1"
  211. string(1) "1"
  212. string(1) "1"
  213. string(1) "1"
  214. string(1) "1"
  215. string(1) "1"
  216. string(1) "1"
  217. string(1) "1"
  218. string(1) "1"
  219. string(1) "1"
  220. string(1) "1"
  221. string(1) "1"
  222. string(1) "1"
  223. string(1) "1"
  224. string(1) "1"
  225. string(1) "1"
  226. string(1) "1"
  227. string(1) "1"
  228. string(1) "1"
  229. string(1) "1"
  230. string(1) "1"
  231. string(1) "1"
  232. string(1) "1"
  233. string(1) "1"
  234. string(1) "1"
  235. string(1) "1"
  236. string(1) "1"
  237. string(1) "1"
  238. string(1) "1"
  239. string(1) "1"
  240. string(1) "1"
  241. string(1) "1"
  242. string(1) "1"
  243. Done