📄 006.phpt
字号:
--TEST--InterBase: binding (may take a while)--SKIPIF--<?php include("skipif.inc"); ?>--FILE--<?php /* $Id: 006.phpt,v 1.11 2004/05/30 16:20:25 abies Exp $ */ 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.5); 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--insertselectprepare 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -