mirror of
https://github.com/php/php-src.git
synced 2024-10-20 07:53:58 +00:00
56ca01da1f
Improved phpinfo() appearance
184 lines
5.3 KiB
PHP
184 lines
5.3 KiB
PHP
--TEST--
|
|
InterBase: misc sql types (may take a while)
|
|
--SKIPIF--
|
|
<?php include("skipif.inc"); ?>
|
|
--FILE--
|
|
<?php /* $Id$ */
|
|
|
|
require("interbase.inc");
|
|
ibase_connect($test_base);
|
|
|
|
ibase_query(
|
|
"create table test3 (
|
|
iter integer not null,
|
|
v_char char(1000),
|
|
v_date timestamp,
|
|
v_decimal4_2 decimal(4,2),
|
|
v_decimal4_0 decimal(4,0),
|
|
v_decimal7_2 decimal(7,2),
|
|
v_decimal7_0 decimal(7,0),
|
|
v_numeric15_15 numeric(15,15),
|
|
v_numeric15_0 numeric(15,0),
|
|
v_double double precision,
|
|
v_float float,
|
|
v_integer integer,
|
|
v_smallint smallint,
|
|
v_varchar varchar(10000)
|
|
)");
|
|
ibase_commit();
|
|
|
|
/* should fail, but gracefully */
|
|
@ibase_query("insert into test3 (iter) values (?)", null);
|
|
|
|
/* if timefmt is not supported, suppress error here */
|
|
ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
|
|
|
|
for($iter = 0; $iter < 10; $iter++){
|
|
/* prepare data */
|
|
$v_char = rand_str(1000);
|
|
$v_date = rand_datetime();
|
|
$v_decimal4_2 = rand_number(4,2);
|
|
$v_decimal4_0 = rand_number(4,0);
|
|
$v_decimal7_2 = rand_number(7,2);
|
|
$v_decimal7_0 = rand_number(7,0);
|
|
$v_numeric15_15 = rand_number(15,15);
|
|
$v_numeric15_0 = $iter ? rand_number(15,0) : 0;
|
|
$v_double = rand_number(18);
|
|
$v_float = rand_number(7);
|
|
$v_integer = rand_number(9,0);
|
|
$v_smallint = rand_number(5) % 32767;
|
|
$v_varchar = rand_str(10000);
|
|
|
|
ibase_query(
|
|
"insert into test3 (iter, v_char,v_date,v_decimal4_2, v_decimal4_0, v_decimal7_2, v_decimal7_0,v_numeric15_15, v_numeric15_0,v_double,v_float,v_integer,v_smallint,v_varchar)
|
|
values ($iter, '$v_char','$v_date',$v_decimal4_2, $v_decimal4_0, $v_decimal7_2, $v_decimal7_0,$v_numeric15_15, $v_numeric15_0,$v_double,$v_float,$v_integer,$v_smallint,'$v_varchar')");
|
|
$sel = ibase_query("select * from test3 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_DECIMAL4_2 != $v_decimal4_2){
|
|
echo " DECIMAL4_2 fail\n";
|
|
echo " in: $v_decimal4_2\n";
|
|
echo " out: $row->V_DECIMAL4_2\n";
|
|
}
|
|
if($row->V_DECIMAL4_0 != $v_decimal4_0){
|
|
echo " DECIMAL4_0 fail\n";
|
|
echo " in: $v_decimal4_0\n";
|
|
echo " out: $row->V_DECIMAL4_0\n";
|
|
}
|
|
if($row->V_DECIMAL7_2 != $v_decimal7_2){
|
|
echo " DECIMAL7_2 fail\n";
|
|
echo " in: $v_decimal7_2\n";
|
|
echo " out: $row->V_DECIMAL7_2\n";
|
|
}
|
|
if($row->V_DECIMAL7_0 != $v_decimal7_0){
|
|
echo " DECIMAL7_0 fail\n";
|
|
echo " in: $v_decimal7_0\n";
|
|
echo " out: $row->V_DECIMAL7_0\n";
|
|
}
|
|
if($row->V_NUMERIC15_15 != $v_numeric15_15){
|
|
echo " NUMERIC15_15 fail\n";
|
|
echo " in: $v_numeric15_15\n";
|
|
echo " out: $row->V_NUMERIC15_15\n";
|
|
}
|
|
if($row->V_NUMERIC15_0 != (string)$v_numeric15_0){
|
|
echo " NUMERIC15_0 fail\n";
|
|
echo " in: $v_numeric15_0\n";
|
|
echo " out: $row->V_NUMERIC15_0\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_SMALLINT != $v_smallint){
|
|
echo " SMALLINT fail\n";
|
|
echo " in: $v_smallint\n";
|
|
echo " out: $row->V_SMALLINT\n";
|
|
}
|
|
|
|
if(substr($row->V_VARCHAR,0,strlen($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) */
|
|
|
|
/* check for correct handling of duplicate field names */
|
|
$q = ibase_query('SELECT 1 AS id, 2 AS id, 3 AS id, 4 AS id, 5 AS id, 6 AS id, 7 AS id, 8 AS id, 9 AS id,
|
|
10 AS id, 11 AS id, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 FROM rdb$database');
|
|
var_dump(ibase_fetch_assoc($q));
|
|
|
|
ibase_close();
|
|
echo "end of test\n";
|
|
?>
|
|
--EXPECT--
|
|
array(22) {
|
|
["ID"]=>
|
|
int(1)
|
|
["ID_01"]=>
|
|
int(2)
|
|
["ID_02"]=>
|
|
int(3)
|
|
["ID_03"]=>
|
|
int(4)
|
|
["ID_04"]=>
|
|
int(5)
|
|
["ID_05"]=>
|
|
int(6)
|
|
["ID_06"]=>
|
|
int(7)
|
|
["ID_07"]=>
|
|
int(8)
|
|
["ID_08"]=>
|
|
int(9)
|
|
["ID_09"]=>
|
|
int(10)
|
|
["ID_10"]=>
|
|
int(11)
|
|
["FIELD_00"]=>
|
|
int(12)
|
|
["FIELD_01"]=>
|
|
int(13)
|
|
["FIELD_02"]=>
|
|
int(14)
|
|
["FIELD_03"]=>
|
|
int(15)
|
|
["FIELD_04"]=>
|
|
int(16)
|
|
["FIELD_05"]=>
|
|
int(17)
|
|
["FIELD_06"]=>
|
|
int(18)
|
|
["FIELD_07"]=>
|
|
int(19)
|
|
["FIELD_08"]=>
|
|
int(20)
|
|
["FIELD_09"]=>
|
|
int(21)
|
|
["FIELD_10"]=>
|
|
int(22)
|
|
}
|
|
end of test
|