The following bug report was posted to an InterBase newsgroup:
-----------
Anyone who are using PHP + Interbase should be aware of this bugs especially
when trying to retrieve IB decimal/float data type from a stored
procedure(s). I have reproduced this error that seems as a bug on PHP when
retrieving data from ib that could be found in the attached file.
i tried to execute this query from IBConsole:
SELECT * FROM TEST_P;
and the result is:
94000581000
85000587000
27058581000
12334547000
12345678000
while PHP shows:
-488699512.21
-898758920.19
1288777224.6
-550354888.2
-539223888.2
-------------------------------- TEST.SQL -----------------------
create table test
tbvalue decimal(18,3)
);
commit work;
insert into test values(94000581);
insert into test values(85000587);
insert into test values(27058581);
insert into test values(12334547);
insert into test values(1234567;
commit work;
set term ^;
create procedure test_p
returns
spvalue decimal(18,3)
) as
begin
for select tbValue from test into :spvalue do
begin
spvalue = spvalue * 1000;
suspend;
end
end
^
set term ;^
commit work;
------- TEST.PHP -----------------
$dbh = ibase_connect("datacenter:d:/currdata/test.gdb","sysdba","xxxxxxx");
$sql_stat = "select spvalue from test_p;";
$ibqry= ibase_query($dbh, $sql_stat);
while ($row = ibase_fetch_row($ibqry))
print $row[0]."
";
}
ibase_close($dbh);
?>
-----------
I've confirmed this on a Windows platform using Apache, PHP 4.05 and
Interbase 6.01, however the person reporting this confirmed that the bug is
not present in a Linux environment.
Any insight is appreciated.
Regards,
-Jorge
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]