Annotation of embedaddon/php/ext/interbase/tests/006.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: InterBase: binding (may take a while)
! 3: --SKIPIF--
! 4: <?php include("skipif.inc"); ?>
! 5: --FILE--
! 6: <?php /* $Id: 006.phpt 316521 2011-09-12 09:56:45Z mariuz $ */
! 7:
! 8: require("interbase.inc");
! 9:
! 10: ibase_connect($test_base);
! 11:
! 12: ibase_query(
! 13: "create table test6 (
! 14: iter integer,
! 15: v_char char(1000),
! 16: v_date timestamp,
! 17: v_decimal decimal(12,3),
! 18: v_double double precision,
! 19: v_float float,
! 20: v_integer integer,
! 21: v_numeric numeric(4,2),
! 22: v_smallint smallint,
! 23: v_varchar varchar(10000)
! 24: )");
! 25: ibase_query(
! 26: "create procedure add1 (arg integer)
! 27: returns (result integer)
! 28: as
! 29: begin
! 30: result = arg +1;
! 31: end");
! 32: ibase_commit();
! 33:
! 34: /* if timefmt not supported, hide error */
! 35: ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
! 36:
! 37: echo "insert\n";
! 38:
! 39: for($iter = 0; $iter < 3; $iter++) {
! 40: /* prepare data */
! 41: $v_char = rand_str(1000);
! 42: $v_date = rand_datetime();
! 43: $v_decimal = rand_number(12,3);
! 44: $v_double = rand_number(20);
! 45: $v_float = rand_number(7);
! 46: $v_integer = rand_number(9,0);
! 47: $v_numeric = rand_number(4,2);
! 48: $v_smallint = rand_number(5) % 32767;
! 49: $v_varchar = rand_str(10000);
! 50:
! 51: ibase_query("insert into test6
! 52: (iter,v_char,v_date,v_decimal,v_double,v_float,
! 53: v_integer,v_numeric,v_smallint,v_varchar)
! 54: values (?,?,?,?,?,?,?,?,?,?)",
! 55: $iter, $v_char, $v_date, $v_decimal, $v_double, $v_float,
! 56: $v_integer, $v_numeric, $v_smallint, $v_varchar);
! 57: $sel = ibase_query("select * from test6 where iter = ?", $iter);
! 58:
! 59: $row = ibase_fetch_object($sel);
! 60: if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char) {
! 61: echo " CHAR fail:\n";
! 62: echo " in: $v_char\n";
! 63: echo " out: $row->V_CHAR\n";
! 64: }
! 65: if($row->V_DATE != $v_date) {
! 66: echo " DATE fail\n";
! 67: echo " in: $v_date\n";
! 68: echo " out: $row->V_DATE\n";
! 69: }
! 70: if($row->V_DECIMAL != $v_decimal) {
! 71: echo " DECIMAL fail\n";
! 72: echo " in: $v_decimal\n";
! 73: echo " out: $row->V_DECIMAL\n";
! 74: }
! 75: if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)) {
! 76: echo " DOUBLE fail\n";
! 77: echo " in: $v_double\n";
! 78: echo " out: $row->V_DOUBLE\n";
! 79: }
! 80: if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)) {
! 81: echo " FLOAT fail\n";
! 82: echo " in: $v_float\n";
! 83: echo " out: $row->V_FLOAT\n";
! 84: }
! 85: if($row->V_INTEGER != $v_integer) {
! 86: echo " INTEGER fail\n";
! 87: echo " in: $v_integer\n";
! 88: echo " out: $row->V_INTEGER\n";
! 89: }
! 90: if ($row->V_NUMERIC != $v_numeric) {
! 91: echo " NUMERIC fail\n";
! 92: echo " in: $v_numeric\n";
! 93: echo " out: $row->V_NUMERIC\n";
! 94: }
! 95: if ($row->V_SMALLINT != $v_smallint) {
! 96: echo " SMALLINT fail\n";
! 97: echo " in: $v_smallint\n";
! 98: echo " out: $row->V_SMALLINT\n";
! 99: }
! 100: if ($row->V_VARCHAR != $v_varchar) {
! 101: echo " VARCHAR fail:\n";
! 102: echo " in: $v_varchar\n";
! 103: echo " out: $row->V_VARCHAR\n";
! 104: }
! 105: ibase_free_result($sel);
! 106: }/* for($iter)*/
! 107:
! 108: echo "select\n";
! 109: for($iter = 0; $iter < 3; $iter++) {
! 110: /* prepare data */
! 111: $v_char = rand_str(1000);
! 112: $v_date = (int)rand_number(10,0,0);
! 113: $v_decimal = rand_number(12,3);
! 114: $v_double = rand_number(20);
! 115: $v_float = rand_number(7);
! 116: $v_integer = rand_number(9,0);
! 117: $v_numeric = rand_number(4,2);
! 118: $v_smallint = rand_number(5) % 32767;
! 119: $v_varchar = rand_str(10000);
! 120:
! 121: /* clear table*/
! 122: ibase_query("delete from test6");
! 123:
! 124: /* make one record */
! 125: ibase_query("insert into test6
! 126: (iter, v_char,v_date,v_decimal,
! 127: v_integer,v_numeric,v_smallint,v_varchar)
! 128: values (666, '$v_char',?,$v_decimal, $v_integer,
! 129: $v_numeric, $v_smallint, '$v_varchar')",$v_date);
! 130:
! 131: /* test all types */
! 132: if(!($sel = ibase_query(
! 133: "select iter from test6 where v_char = ?", $v_char)) ||
! 134: !ibase_fetch_row($sel)) {
! 135: echo "CHAR fail\n";
! 136: }
! 137: ibase_free_result($sel);
! 138: if(!($sel = ibase_query(
! 139: "select iter from test6 where v_date = ?", $v_date)) ||
! 140: !ibase_fetch_row($sel)) {
! 141: echo "DATE fail\n";
! 142: }
! 143: ibase_free_result($sel);
! 144: if(!($sel = ibase_query(
! 145: "select iter from test6 where v_decimal = ?", $v_decimal)) ||
! 146: !ibase_fetch_row($sel)) {
! 147: echo "DECIMAL fail\n";
! 148: }
! 149: ibase_free_result($sel);
! 150: if(!($sel = ibase_query(
! 151: "select iter from test6 where v_integer = ?", $v_integer)) ||
! 152: !ibase_fetch_row($sel)) {
! 153: echo "INTEGER fail\n";
! 154: }
! 155: ibase_free_result($sel);
! 156: if(!($sel = ibase_query(
! 157: "select iter from test6 where v_numeric = ?", $v_numeric)) ||
! 158: !ibase_fetch_row($sel)) {
! 159: echo "NUMERIC fail\n";
! 160: }
! 161: ibase_free_result($sel);
! 162: if(!($sel = ibase_query(
! 163: "select iter from test6 where v_smallint = ?", $v_smallint)) ||
! 164: !ibase_fetch_row($sel)) {
! 165: echo "SMALLINT fail\n";
! 166: }
! 167: ibase_free_result($sel);
! 168: if(!($sel = ibase_query(
! 169: "select iter from test6 where v_varchar = ?", $v_varchar)) ||
! 170: !ibase_fetch_row($sel)) {
! 171: echo "VARCHAR fail\n";
! 172: }
! 173: ibase_free_result($sel);
! 174:
! 175: } /*for iter*/
! 176:
! 177: echo "prepare and exec insert\n";
! 178:
! 179: /* prepare table */
! 180: ibase_query("delete from test6");
! 181:
! 182: /* prepare query */
! 183: $query = ibase_prepare(
! 184: "insert into test6 (v_integer) values (?)");
! 185:
! 186: for($i = 0; $i < 10; $i++) {
! 187: ibase_execute($query, $i);
! 188: }
! 189:
! 190: out_table("test6");
! 191:
! 192: ibase_free_query($query);
! 193:
! 194: echo "prepare and exec select\n";
! 195:
! 196: /* prepare query */
! 197: $query = ibase_prepare("select * from test6
! 198: where v_integer between ? and ?");
! 199:
! 200: $low_border = 2;
! 201: $high_border = 6;
! 202:
! 203: $res = ibase_execute($query, $low_border, $high_border);
! 204: out_result($res, "test6");
! 205: ibase_free_result($res);
! 206:
! 207: $low_border = 0;
! 208: $high_border = 4;
! 209: $res = ibase_execute($query, $low_border, $high_border);
! 210: out_result($res, "test6");
! 211: ibase_free_result($res);
! 212:
! 213: $res = ibase_execute($query, "5", 7.499);
! 214: out_result($res, "test6");
! 215: ibase_free_result($res);
! 216:
! 217: ibase_free_query($query);
! 218:
! 219: /* test execute procedure */
! 220: $query = ibase_prepare("execute procedure add1(?)");
! 221: $res = array();
! 222: for ($i = 0; $i < 10; $i++) {
! 223: $res[] = ibase_execute($query,$i);
! 224: }
! 225: ibase_free_query($query);
! 226: foreach ($res as $r) {
! 227: out_result($r, "proc add1");
! 228: ibase_free_result($r);
! 229: }
! 230:
! 231: ibase_close();
! 232: echo "end of test\n";
! 233: ?>
! 234: --EXPECT--
! 235: insert
! 236: select
! 237: prepare and exec insert
! 238: --- test6 ---
! 239: 0
! 240: 1
! 241: 2
! 242: 3
! 243: 4
! 244: 5
! 245: 6
! 246: 7
! 247: 8
! 248: 9
! 249: ---
! 250: prepare and exec select
! 251: --- test6 ---
! 252: 2
! 253: 3
! 254: 4
! 255: 5
! 256: 6
! 257: ---
! 258: --- test6 ---
! 259: 0
! 260: 1
! 261: 2
! 262: 3
! 263: 4
! 264: ---
! 265: --- test6 ---
! 266: 5
! 267: 6
! 268: 7
! 269: ---
! 270: --- proc add1 ---
! 271: 1
! 272: ---
! 273: --- proc add1 ---
! 274: 2
! 275: ---
! 276: --- proc add1 ---
! 277: 3
! 278: ---
! 279: --- proc add1 ---
! 280: 4
! 281: ---
! 282: --- proc add1 ---
! 283: 5
! 284: ---
! 285: --- proc add1 ---
! 286: 6
! 287: ---
! 288: --- proc add1 ---
! 289: 7
! 290: ---
! 291: --- proc add1 ---
! 292: 8
! 293: ---
! 294: --- proc add1 ---
! 295: 9
! 296: ---
! 297: --- proc add1 ---
! 298: 10
! 299: ---
! 300: end of test
! 301:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>