bind_sqltint.phpt 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. --TEST--
  2. Bind with SQLT_INT
  3. --EXTENSIONS--
  4. oci8
  5. --FILE--
  6. <?php
  7. require(__DIR__.'/connect.inc');
  8. // Initialization
  9. $stmtarray = array(
  10. "drop table bind_sqltint_tab",
  11. "create table bind_sqltint_tab (
  12. id number,
  13. varchar2_t10 varchar2(10),
  14. number_t number,
  15. number_t92 number(9,2))",
  16. );
  17. oci8_test_sql_execute($c, $stmtarray);
  18. function check_col($c, $colname, $id)
  19. {
  20. $s = oci_parse($c, "select $colname from bind_sqltint_tab where id = :id");
  21. oci_bind_by_name($s, ":id", $id);
  22. oci_execute($s);
  23. oci_fetch_all($s, $r);
  24. var_dump($r);
  25. }
  26. // Run Test
  27. echo "\nTEST141 wrong bind type SQLT_INT\n";
  28. $c2 = "Hood141";
  29. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, varchar2_t10) VALUES (141, :c2)");
  30. oci_bind_by_name($s, ":c2", $c2, -1, SQLT_INT);
  31. oci_execute($s);
  32. check_col($c, 'varchar2_t10', 141);
  33. echo "\nTEST142 insert numbers SQLT_INT\n";
  34. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (142, :n1)");
  35. $n1 = 42;
  36. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  37. oci_execute($s);
  38. check_col($c, 'number_t', 142);
  39. echo "\nTEST143 insert numbers, SQLT_INT\n";
  40. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (143, :n1)");
  41. $n1 = 42.69;
  42. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  43. oci_execute($s);
  44. check_col($c, 'number_t', 143);
  45. echo "\nTEST144 insert numbers with SQLT_INT\n";
  46. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (144, :n1)");
  47. $n1 = 0;
  48. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  49. oci_execute($s);
  50. check_col($c, 'number_t', 144);
  51. echo "\nTEST145 insert numbers with SQLT_INT\n";
  52. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (145, :n1)");
  53. $n1 = -23;
  54. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  55. oci_execute($s);
  56. check_col($c, 'number_t', 145);
  57. echo "\nTEST146 insert numbers\n";
  58. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (146, :n1)");
  59. $n1 = "-23";
  60. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  61. oci_execute($s);
  62. check_col($c, 'number_t', 146);
  63. echo "\nTEST147 insert numbers with SQLT_INT\n";
  64. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t) VALUES (147, :n1)");
  65. $n1 = "23";
  66. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  67. oci_execute($s);
  68. check_col($c, 'number_t', 147);
  69. echo "\nTEST148 insert numbers with SQLT_INT\n";
  70. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t92) VALUES (148, :n1)");
  71. $n1 = 123.56;
  72. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  73. oci_execute($s);
  74. check_col($c, 'number_t92', 148);
  75. echo "\nTEST149 insert numbers with SQLT_INT\n";
  76. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t92) VALUES (149, :n1)");
  77. $n1 = "123.56";
  78. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  79. oci_execute($s);
  80. check_col($c, 'number_t92', 149);
  81. echo "\nTEST150 insert numbers with SQLT_INT\n";
  82. $s = oci_parse($c, "INSERT INTO bind_sqltint_tab (id, number_t92) VALUES (150, :n1)");
  83. $n1 = "";
  84. oci_bind_by_name($s, ":n1", $n1, -1, SQLT_INT);
  85. oci_execute($s);
  86. check_col($c, 'number_t92', 150);
  87. echo "\nTEST151 - 159 Initialization tests\n";
  88. $s = oci_parse($c, "begin :p2 := :p1; end;");
  89. unset($p1);
  90. unset($p2);
  91. oci_bind_by_name($s, ":p1", $p1, 10);
  92. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  93. oci_execute($s);
  94. var_dump($p2);
  95. echo "\nTEST152\n";
  96. unset($p1);
  97. $p2 = null;
  98. oci_bind_by_name($s, ":p1", $p1, 10);
  99. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  100. oci_execute($s);
  101. var_dump($p2);
  102. echo "\nTEST153\n";
  103. unset($p1);
  104. $p2 = 1111;
  105. oci_bind_by_name($s, ":p1", $p1, 10);
  106. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  107. oci_execute($s);
  108. var_dump($p2);
  109. echo "\nTEST154\n";
  110. $p1 = null;
  111. unset($p2);
  112. oci_bind_by_name($s, ":p1", $p1, 10);
  113. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  114. oci_execute($s);
  115. var_dump($p2);
  116. echo "\nTEST155\n";
  117. $p1 = null;
  118. $p2 = null;
  119. oci_bind_by_name($s, ":p1", $p1, 10);
  120. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  121. oci_execute($s);
  122. var_dump($p2);
  123. echo "\nTEST156\n";
  124. $p1 = null;
  125. $p2 = 2222;
  126. oci_bind_by_name($s, ":p1", $p1, 10);
  127. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  128. oci_execute($s);
  129. var_dump($p2);
  130. echo "\nTEST157\n";
  131. $p1 = 3333;
  132. unset($p2);
  133. oci_bind_by_name($s, ":p1", $p1, 10);
  134. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  135. oci_execute($s);
  136. var_dump($p2);
  137. echo "\nTEST158\n";
  138. $p1 = 4444;
  139. $p2 = null;
  140. oci_bind_by_name($s, ":p1", $p1, 10);
  141. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  142. oci_execute($s);
  143. var_dump($p2);
  144. echo "\nTEST159\n";
  145. $p1 = 5555;
  146. $p2 = 6666;
  147. oci_bind_by_name($s, ":p1", $p1, 10);
  148. oci_bind_by_name($s, ":p2", $p2, -1, SQLT_INT);
  149. oci_execute($s);
  150. var_dump($p2);
  151. // Clean up
  152. $stmtarray = array(
  153. "drop table bind_sqltint_tab"
  154. );
  155. oci8_test_sql_execute($c, $stmtarray);
  156. ?>
  157. --EXPECT--
  158. TEST141 wrong bind type SQLT_INT
  159. array(1) {
  160. ["VARCHAR2_T10"]=>
  161. array(1) {
  162. [0]=>
  163. string(1) "0"
  164. }
  165. }
  166. TEST142 insert numbers SQLT_INT
  167. array(1) {
  168. ["NUMBER_T"]=>
  169. array(1) {
  170. [0]=>
  171. string(2) "42"
  172. }
  173. }
  174. TEST143 insert numbers, SQLT_INT
  175. array(1) {
  176. ["NUMBER_T"]=>
  177. array(1) {
  178. [0]=>
  179. string(2) "42"
  180. }
  181. }
  182. TEST144 insert numbers with SQLT_INT
  183. array(1) {
  184. ["NUMBER_T"]=>
  185. array(1) {
  186. [0]=>
  187. string(1) "0"
  188. }
  189. }
  190. TEST145 insert numbers with SQLT_INT
  191. array(1) {
  192. ["NUMBER_T"]=>
  193. array(1) {
  194. [0]=>
  195. string(3) "-23"
  196. }
  197. }
  198. TEST146 insert numbers
  199. array(1) {
  200. ["NUMBER_T"]=>
  201. array(1) {
  202. [0]=>
  203. string(3) "-23"
  204. }
  205. }
  206. TEST147 insert numbers with SQLT_INT
  207. array(1) {
  208. ["NUMBER_T"]=>
  209. array(1) {
  210. [0]=>
  211. string(2) "23"
  212. }
  213. }
  214. TEST148 insert numbers with SQLT_INT
  215. array(1) {
  216. ["NUMBER_T92"]=>
  217. array(1) {
  218. [0]=>
  219. string(3) "123"
  220. }
  221. }
  222. TEST149 insert numbers with SQLT_INT
  223. array(1) {
  224. ["NUMBER_T92"]=>
  225. array(1) {
  226. [0]=>
  227. string(3) "123"
  228. }
  229. }
  230. TEST150 insert numbers with SQLT_INT
  231. array(1) {
  232. ["NUMBER_T92"]=>
  233. array(1) {
  234. [0]=>
  235. string(1) "0"
  236. }
  237. }
  238. TEST151 - 159 Initialization tests
  239. NULL
  240. TEST152
  241. NULL
  242. TEST153
  243. NULL
  244. TEST154
  245. NULL
  246. TEST155
  247. NULL
  248. TEST156
  249. NULL
  250. TEST157
  251. int(3333)
  252. TEST158
  253. int(4444)
  254. TEST159
  255. int(5555)