bug27303_3.phpt 2.8 KB

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