PHP Bug with InterBase
| From: | Jorge Alvarez | Date: | Tue, 26 Jun 2001 04:05:40 +0000 |
| Subject: | PHP Bug with InterBase | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-9819@lists.php.net to get a copy of this message | ||
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