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