123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- --TEST--
- InterBase: binding (may take a while)
- --SKIPIF--
- <?php include("skipif.inc"); ?>
- --FILE--
- <?php
- require("interbase.inc");
- ibase_connect($test_base);
- ibase_query(
- "create table test6 (
- iter integer,
- v_char char(1000),
- v_date timestamp,
- v_decimal decimal(12,3),
- v_double double precision,
- v_float float,
- v_integer integer,
- v_numeric numeric(4,2),
- v_smallint smallint,
- v_varchar varchar(10000)
- )");
- ibase_query(
- "create procedure add1 (arg integer)
- returns (result integer)
- as
- begin
- result = arg +1;
- end");
- ibase_commit();
- /* if timefmt not supported, hide error */
- ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
- echo "insert\n";
- for($iter = 0; $iter < 3; $iter++) {
- /* prepare data */
- $v_char = rand_str(1000);
- $v_date = rand_datetime();
- $v_decimal = rand_number(12,3);
- $v_double = rand_number(20);
- $v_float = rand_number(7);
- $v_integer = rand_number(9,0);
- $v_numeric = rand_number(4,2);
- $v_smallint = rand_number(5) % 32767;
- $v_varchar = rand_str(10000);
- ibase_query("insert into test6
- (iter,v_char,v_date,v_decimal,v_double,v_float,
- v_integer,v_numeric,v_smallint,v_varchar)
- values (?,?,?,?,?,?,?,?,?,?)",
- $iter, $v_char, $v_date, $v_decimal, $v_double, $v_float,
- $v_integer, $v_numeric, $v_smallint, $v_varchar);
- $sel = ibase_query("select * from test6 where iter = ?", $iter);
- $row = ibase_fetch_object($sel);
- if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char) {
- echo " CHAR fail:\n";
- echo " in: $v_char\n";
- echo " out: $row->V_CHAR\n";
- }
- if($row->V_DATE != $v_date) {
- echo " DATE fail\n";
- echo " in: $v_date\n";
- echo " out: $row->V_DATE\n";
- }
- if($row->V_DECIMAL != $v_decimal) {
- echo " DECIMAL fail\n";
- echo " in: $v_decimal\n";
- echo " out: $row->V_DECIMAL\n";
- }
- if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)) {
- echo " DOUBLE fail\n";
- echo " in: $v_double\n";
- echo " out: $row->V_DOUBLE\n";
- }
- if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)) {
- echo " FLOAT fail\n";
- echo " in: $v_float\n";
- echo " out: $row->V_FLOAT\n";
- }
- if($row->V_INTEGER != $v_integer) {
- echo " INTEGER fail\n";
- echo " in: $v_integer\n";
- echo " out: $row->V_INTEGER\n";
- }
- if ($row->V_NUMERIC != $v_numeric) {
- echo " NUMERIC fail\n";
- echo " in: $v_numeric\n";
- echo " out: $row->V_NUMERIC\n";
- }
- if ($row->V_SMALLINT != $v_smallint) {
- echo " SMALLINT fail\n";
- echo " in: $v_smallint\n";
- echo " out: $row->V_SMALLINT\n";
- }
- if ($row->V_VARCHAR != $v_varchar) {
- echo " VARCHAR fail:\n";
- echo " in: $v_varchar\n";
- echo " out: $row->V_VARCHAR\n";
- }
- ibase_free_result($sel);
- }/* for($iter)*/
- echo "select\n";
- for($iter = 0; $iter < 3; $iter++) {
- /* prepare data */
- $v_char = rand_str(1000);
- $v_date = (int)rand_number(10,0,0);
- $v_decimal = rand_number(12,3);
- $v_double = rand_number(20);
- $v_float = rand_number(7);
- $v_integer = rand_number(9,0);
- $v_numeric = rand_number(4,2);
- $v_smallint = rand_number(5) % 32767;
- $v_varchar = rand_str(10000);
- /* clear table*/
- ibase_query("delete from test6");
- /* make one record */
- ibase_query("insert into test6
- (iter, v_char,v_date,v_decimal,
- v_integer,v_numeric,v_smallint,v_varchar)
- values (666, '$v_char',?,$v_decimal, $v_integer,
- $v_numeric, $v_smallint, '$v_varchar')",$v_date);
- /* test all types */
- if(!($sel = ibase_query(
- "select iter from test6 where v_char = ?", $v_char)) ||
- !ibase_fetch_row($sel)) {
- echo "CHAR fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_date = ?", $v_date)) ||
- !ibase_fetch_row($sel)) {
- echo "DATE fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_decimal = ?", $v_decimal)) ||
- !ibase_fetch_row($sel)) {
- echo "DECIMAL fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_integer = ?", $v_integer)) ||
- !ibase_fetch_row($sel)) {
- echo "INTEGER fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_numeric = ?", $v_numeric)) ||
- !ibase_fetch_row($sel)) {
- echo "NUMERIC fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_smallint = ?", $v_smallint)) ||
- !ibase_fetch_row($sel)) {
- echo "SMALLINT fail\n";
- }
- ibase_free_result($sel);
- if(!($sel = ibase_query(
- "select iter from test6 where v_varchar = ?", $v_varchar)) ||
- !ibase_fetch_row($sel)) {
- echo "VARCHAR fail\n";
- }
- ibase_free_result($sel);
- } /*for iter*/
- echo "prepare and exec insert\n";
- /* prepare table */
- ibase_query("delete from test6");
- /* prepare query */
- $query = ibase_prepare(
- "insert into test6 (v_integer) values (?)");
- for($i = 0; $i < 10; $i++) {
- ibase_execute($query, $i);
- }
- out_table("test6");
- ibase_free_query($query);
- echo "prepare and exec select\n";
- /* prepare query */
- $query = ibase_prepare("select * from test6
- where v_integer between ? and ?");
- $low_border = 2;
- $high_border = 6;
- $res = ibase_execute($query, $low_border, $high_border);
- out_result($res, "test6");
- ibase_free_result($res);
- $low_border = 0;
- $high_border = 4;
- $res = ibase_execute($query, $low_border, $high_border);
- out_result($res, "test6");
- ibase_free_result($res);
- $res = ibase_execute($query, "5", 7.499);
- out_result($res, "test6");
- ibase_free_result($res);
- ibase_free_query($query);
- /* test execute procedure */
- $query = ibase_prepare("execute procedure add1(?)");
- $res = array();
- for ($i = 0; $i < 10; $i++) {
- $res[] = ibase_execute($query,$i);
- }
- ibase_free_query($query);
- foreach ($res as $r) {
- out_result($r, "proc add1");
- ibase_free_result($r);
- }
- ibase_close();
- echo "end of test\n";
- ?>
- --EXPECT--
- insert
- select
- prepare and exec insert
- --- test6 ---
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- ---
- prepare and exec select
- --- test6 ---
- 2
- 3
- 4
- 5
- 6
- ---
- --- test6 ---
- 0
- 1
- 2
- 3
- 4
- ---
- --- test6 ---
- 5
- 6
- 7
- ---
- --- proc add1 ---
- 1
- ---
- --- proc add1 ---
- 2
- ---
- --- proc add1 ---
- 3
- ---
- --- proc add1 ---
- 4
- ---
- --- proc add1 ---
- 5
- ---
- --- proc add1 ---
- 6
- ---
- --- proc add1 ---
- 7
- ---
- --- proc add1 ---
- 8
- ---
- --- proc add1 ---
- 9
- ---
- --- proc add1 ---
- 10
- ---
- end of test
|