bug27303_2_11gR1.phpt 4.3 KB

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