bind_sqltint.phpt 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. --TEST--
  2. Bind with SQLT_INT
  3. --SKIPIF--
  4. <?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
  5. --FILE--
  6. <?php
  7. require(dirname(__FILE__).'/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. ===DONE===
  158. <?php exit(0); ?>
  159. --EXPECTF--
  160. TEST141 wrong bind type SQLT_INT
  161. array(1) {
  162. ["VARCHAR2_T10"]=>
  163. array(1) {
  164. [0]=>
  165. string(1) "0"
  166. }
  167. }
  168. TEST142 insert numbers SQLT_INT
  169. array(1) {
  170. ["NUMBER_T"]=>
  171. array(1) {
  172. [0]=>
  173. string(2) "42"
  174. }
  175. }
  176. TEST143 insert numbers, SQLT_INT
  177. array(1) {
  178. ["NUMBER_T"]=>
  179. array(1) {
  180. [0]=>
  181. string(2) "42"
  182. }
  183. }
  184. TEST144 insert numbers with SQLT_INT
  185. array(1) {
  186. ["NUMBER_T"]=>
  187. array(1) {
  188. [0]=>
  189. string(1) "0"
  190. }
  191. }
  192. TEST145 insert numbers with SQLT_INT
  193. array(1) {
  194. ["NUMBER_T"]=>
  195. array(1) {
  196. [0]=>
  197. string(3) "-23"
  198. }
  199. }
  200. TEST146 insert numbers
  201. array(1) {
  202. ["NUMBER_T"]=>
  203. array(1) {
  204. [0]=>
  205. string(3) "-23"
  206. }
  207. }
  208. TEST147 insert numbers with SQLT_INT
  209. array(1) {
  210. ["NUMBER_T"]=>
  211. array(1) {
  212. [0]=>
  213. string(2) "23"
  214. }
  215. }
  216. TEST148 insert numbers with SQLT_INT
  217. array(1) {
  218. ["NUMBER_T92"]=>
  219. array(1) {
  220. [0]=>
  221. string(3) "123"
  222. }
  223. }
  224. TEST149 insert numbers with SQLT_INT
  225. array(1) {
  226. ["NUMBER_T92"]=>
  227. array(1) {
  228. [0]=>
  229. string(3) "123"
  230. }
  231. }
  232. TEST150 insert numbers with SQLT_INT
  233. array(1) {
  234. ["NUMBER_T92"]=>
  235. array(1) {
  236. [0]=>
  237. string(1) "0"
  238. }
  239. }
  240. TEST151 - 159 Initialization tests
  241. NULL
  242. TEST152
  243. NULL
  244. TEST153
  245. NULL
  246. TEST154
  247. NULL
  248. TEST155
  249. NULL
  250. TEST156
  251. NULL
  252. TEST157
  253. int(3333)
  254. TEST158
  255. int(4444)
  256. TEST159
  257. int(5555)
  258. ===DONE===