abies Fri Sep 5 09:08:42 2003 EDT Added files: /php-src/ext/interbase/tests 007.phpt Log: Test array handling
Index: php-src/ext/interbase/tests/007.phpt +++ php-src/ext/interbase/tests/007.phpt --TEST-- InterBase: array handling --SKIPIF-- <?php include("skipif.inc"); ?> --POST-- --GET-- --FILE-- <?php require("interbase.inc"); ibase_connect($test_base); ibase_query( "create table test7 ( iter integer, v_multi integer[10,10,10], v_char char(100)[10], v_date timestamp[10], v_decimal decimal(18,3)[10], v_double double precision[10], v_float float[10], v_integer integer[10], v_numeric numeric(9,2)[10], v_smallint smallint[10], v_varchar varchar(1000)[10] )"); ibase_commit(); /* if timefmt not supported, hide error */ @ibase_timefmt("%m/%d/%Y %H:%M:%S"); echo "insert\n"; for ($i = 1; $i <= 10; ++$i) { for ($j = 1; $j <= 10; ++$j) { for ($k = 1; $k <= 10; ++$k) { $v_multi[$i][$j][$k] = $i * $j * $k; } } } for($iter = 0; $iter < 3; $iter++) { /* prepare data */ $v_char = array(); $v_date = array(); $v_decimal = array(); $v_double = array(); $v_float = array(); $v_integer = array(); $v_numeric = array(); $v_smallint = array(); $v_varchar = array(); for ($i = 1; $i <= 10; ++$i) { $v_char[$i] = rand_str(100); $v_date[$i] = rand_datetime(); $v_decimal[$i] = rand_number(18,3); $v_double[$i] = rand_number(20); $v_float[$i] = rand_number(7); $v_integer[$i] = rand_number(9,0); $v_numeric[$i] = rand_number(9,2); $v_smallint[$i] = rand_number(5) % 32767; $v_varchar[$i] = rand_str(1000); } ibase_query("insert into test7 (iter,v_multi,v_char,v_date,v_decimal,v_double,v_float, v_integer,v_numeric,v_smallint,v_varchar) values (?,?,?,?,?,?,?,?,?,?,?)", $iter, $v_multi, $v_char, $v_date, $v_decimal, $v_double, $v_float, $v_integer, $v_numeric, $v_smallint, $v_varchar); $sel = ibase_query("select * from test7 where iter = $iter"); $row = ibase_fetch_object($sel,IBASE_FETCH_ARRAYS); for ($i = 1; $i <= 10; ++$i) { if(strncmp($row->V_CHAR[$i],$v_char[$i],strlen($v_char[$i])) != 0) { echo " CHAR[$i] fail:\n"; echo " in: ".$v_char[$i]."\n"; echo " out: ".$row->V_CHAR[$i]."\n"; } if($row->V_DATE[$i] != $v_date[$i]) { echo " DATE[$i] fail\n"; echo " in: ".$v_date[$i]."\n"; echo " out: ".$row->V_DATE[$i]."\n"; } if($row->V_DECIMAL[$i] != $v_decimal[$i]) { echo " DECIMAL[$i] fail\n"; echo " in: ".$v_decimal[$i]."\n"; echo " out: ".$row->V_DECIMAL[$i]."\n"; } if(abs($row->V_DOUBLE[$i] - $v_double[$i]) > abs($v_double[$i] / 1E15)) { echo " DOUBLE[$i] fail\n"; echo " in: ".$v_double[$i]."\n"; echo " out: ".$row->V_DOUBLE[$i]."\n"; } if(abs($row->V_FLOAT[$i] - $v_float[$i]) > abs($v_float[$i] / 1E7)) { echo " FLOAT[$i] fail\n"; echo " in: ".$v_float[$i]."\n"; echo " out: ".$row->V_FLOAT[$i]."\n"; } if($row->V_INTEGER[$i] != $v_integer[$i]) { echo " INTEGER[$i] fail\n"; echo " in: ".$v_integer[$i]."\n"; echo " out: ".$row->V_INTEGER[$i]."\n"; } if ($row->V_NUMERIC[$i] != $v_numeric[$i]) { echo " NUMERIC[$i] fail\n"; echo " in: ".$v_numeric[$i]."\n"; echo " out: ".$row->V_NUMERIC[$i]."\n"; } if ($row->V_SMALLINT[$i] != $v_smallint[$i]) { echo " SMALLINT[$i] fail\n"; echo " in: ".$v_smallint[$i]."\n"; echo " out: ".$row->V_SMALLINT[$i]."\n"; } if ($row->V_VARCHAR[$i] != $v_varchar[$i]) { echo " VARCHAR[$i] fail:\n"; echo " in: ".$v_varchar[$i]."\n"; echo " out: ".$row->V_VARCHAR[$i]."\n"; } } ibase_free_result($sel); }/* for($iter) */ echo "select\n"; $sel = ibase_query("SELECT v_multi[5,5,5],v_multi[10,10,10] FROM test7 WHERE iter = 0"); print_r(ibase_fetch_row($sel)); ibase_free_result($sel); for($iter = 1; $iter <= 3; $iter++) { if(!($sel = ibase_query( "select iter from test7 where v_char[$iter] LIKE ?", $v_char[$iter]."%")) || !ibase_fetch_row($sel)) { echo "CHAR fail\n"; } ibase_free_result($sel); if(!($sel = ibase_query( "select iter from test7 where v_date[$iter] = ?", $v_date[$iter])) || !ibase_fetch_row($sel)) { echo "DATE fail\n"; } ibase_free_result($sel); if(!($sel = ibase_query( "select iter from test7 where v_decimal[$iter] = ?", $v_decimal[$iter])) || !ibase_fetch_row($sel)) { echo "DECIMAL fail\n"; } ibase_free_result($sel); if(!($sel = ibase_query( "select iter from test7 where v_integer[$iter] = ?", $v_integer[$iter])) || !ibase_fetch_row($sel)) { echo "INTEGER fail\n"; } ibase_free_result($sel); if(!($sel = ibase_query( "select iter from test7 where v_numeric[$iter] = ?", $v_numeric[$iter])) || !ibase_fetch_row($sel)) { echo "NUMERIC fail\n"; } ibase_free_result($sel); if(!($sel = ibase_query( "select iter from test7 where v_smallint[$iter] = ?", $v_smallint[$iter])) || !ibase_fetch_row($sel)) { echo "SMALLINT fail\n"; } ibase_free_result($sel); } ibase_close(); echo "end of test\n"; ?> --EXPECT-- insert select Array ( [0] => 125 [1] => 1000 ) end of test -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php