bug27303_4_11gR1.phpt 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  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. $create_st = array();
  18. $create_st[] = "drop sequence myseq";
  19. $create_st[] = "drop table mytab";
  20. $create_st[] = "create sequence myseq";
  21. $create_st[] = "create table mytab (mydata varchar2(20), seqcol number)";
  22. oci8_test_sql_execute($c, $create_st);
  23. define('MYLIMIT', 200);
  24. $stmt = "insert into mytab (mydata, seqcol) values ('Some data', myseq.nextval) returning seqcol into :mybv";
  25. $stid = oci_parse($c, $stmt);
  26. if (!$stid) { echo "Parse error"; die; }
  27. $r = oci_bind_by_name($stid, ':MYBV', $mybv, 0 );
  28. if (!$r) { echo "Bind error"; die; }
  29. for ($i = 1; $i < MYLIMIT; $i++) {
  30. $r = oci_execute($stid, OCI_DEFAULT);
  31. if (!$r) { echo "Execute error"; die; }
  32. var_dump($mybv);
  33. }
  34. oci_commit($c);
  35. $drop_st = array();
  36. $drop_st[] = "drop sequence myseq";
  37. $drop_st[] = "drop table mytab";
  38. oci8_test_sql_execute($c, $drop_st);
  39. echo "Done\n";
  40. ?>
  41. --EXPECT--
  42. string(1) "1"
  43. string(1) "2"
  44. string(1) "3"
  45. string(1) "4"
  46. string(1) "5"
  47. string(1) "6"
  48. string(1) "7"
  49. string(1) "8"
  50. string(1) "9"
  51. string(1) "1"
  52. string(1) "1"
  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) "2"
  62. string(1) "2"
  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) "3"
  72. string(1) "3"
  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) "4"
  82. string(1) "4"
  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) "5"
  92. string(1) "5"
  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) "6"
  102. string(1) "6"
  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) "7"
  112. string(1) "7"
  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) "8"
  122. string(1) "8"
  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) "9"
  132. string(1) "9"
  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) "1"
  142. string(1) "1"
  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. Done