php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39494 Cannot fetch any row
Submitted: 2006-11-13 12:24 UTC Modified: 2006-11-15 09:42 UTC
From: taylor dot ren at gmail dot com Assigned:
Status: Not a bug Package: InterBase related
PHP Version: 5.2.0 OS: XP
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: taylor dot ren at gmail dot com
New email:
PHP Version: OS:

 

 [2006-11-13 12:24 UTC] taylor dot ren at gmail dot com
Description:
------------
I installed PHP with IIS and opened InterBase ext. 

1. IB is OK. I can run separately developed Win32 programs. 
2. PHP is OK. I can load a PHP test file with as simple as phpinfo();
3. ibase_XXXX functions seems OK because there is no error message prompted. 
4. Database/table name OK. 

PHP Interbase script:


Tried in Firefox & IE6. 


Reproduce code:
---------------
<body>
<?php
$connection = ibase_connect('localhost:f:/data/test.ib', 'tr', 'enigma', 'gb_2312');

$sql='select * from t1';
$result=ibase_query($connection, $sql);
while($row=ibase_fetch_object($result))
{
	echo (int)$row->id1, "\n";
}
ibase_free_result($result);
ibase_close($connection);
?>
End of statement. 

</body>

Expected result:
----------------
I am expecting something like: 
1
2


Actual result:
--------------
but only the last HTML statement: 

"End of statement" was displayed. 



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-11-13 12:28 UTC] taylor dot ren at gmail dot com
BTW, the PHPinfo() prompts the below Interbase related info: 

interbase
Firebird/InterBase Support 	dynamic
Compile-time Client Library Version 	Interbase 6
Run-time Client Library Version 	WI-V7.5.1.80

Is it because I am using IB 7.5 but the compile time lib is only IB 6?
 [2006-11-13 12:29 UTC] tony2001@php.net
What do you get with this script?
<?php
$connection = ibase_connect('localhost:f:/data/test.ib', 'tr', 'enigma', 'gb_2312');
var_dump($connection);

$sql='select * from t1';
$result=ibase_query($connection, $sql);
var_dump($result);
var_dump(ibase_fetch_row($result));
var_dump(ibase_errmsg());
?>
 [2006-11-13 12:48 UTC] taylor dot ren at gmail dot com
Hi Tony, 

Thanks for your quick fdbk. 

The output is like this per your suggest script: 

resource(1) of type (Firebird/InterBase link) bool(false) bool(false)

It seems to me the connection to InterBase is fine but the $result fails after call to ibase_query()... as it returns false...
 [2006-11-13 12:59 UTC] tony2001@php.net
>resource(1) of type (Firebird/InterBase link) bool(false) bool(false)
Are you sure? There are 4 (four) var_dump() calls, but you showed 3.
What if you put ibase_errmsg() right after the ibase_query() call?
 [2006-11-13 23:38 UTC] taylor dot ren at gmail dot com
Hi Tony, 

Thanks again. 

Code segment now looks like this: 
================================
<body>
<?php
$connection = ibase_connect('localhost:f:/data/test.ib', 'tr', 'enigma', 'gb_2312');
var_dump($connection);
var_dump($ibase_errmsg);

$sql='select * from t1';
$result=ibase_query($connection, $sql);
var_dump($result);
var_dump(ibase_fetch_row($result));
var_dump($ibase_errmsg);
?>
End of statement. 
===========================

Output now is: 

resource(1) of type (Firebird/InterBase link) NULL bool(false) bool(false) NULL End of statement.

Any further comments? 
</body>
 [2006-11-13 23:48 UTC] tony2001@php.net
Please enable error_reporting(E_ALL) at the top of the script and use _function_ ibase_errmsg(), not variable $ibase_errmsg.
 [2006-11-14 00:10 UTC] taylor dot ren at gmail dot com
Code segment: 
<body>
<?php
error_reporting(E_ALL);

echo "Connection started. \n";
$connection = ibase_connect('localhost:f:/data/test.ib', 'tr', 'enigma', 'gb_2312');
echo "Dumping connection: ", var_dump($connection);
echo "Dumping ibase_errmsg: ",ibase_errmsg();

$sql='select * from t1';
$result=ibase_query($connection, $sql);
echo "Dumping result: ", var_dump($result);
echo "Dumping fetch_row: ", var_dump(ibase_fetch_row($result));
echo "Dumping ibase_errmsg: ", ibase_errmsg();
?>
End of statement. 

</body>

Output: 
Connection started. Dumping connection: resource(1) of type (Firebird/InterBase link) Dumping ibase_errmsg: Dumping result: bool(false) Dumping fetch_row: bool(false) Dumping ibase_errmsg: End of statement.
 [2006-11-15 09:28 UTC] taylor dot ren at gmail dot com
Hi all, 

The problem in this case is identified. In the sample code segment, I found the problem is caused by the fact that "tr" has no "select" right in table "t1". 

It is very strange that ibase_errmsg did not prompt out any errors!

Now I have changed my code to select from another more complex table and got some other error msg. I will try to fix them by myself and then seek help. 

Please close this topic.
 [2006-11-15 09:42 UTC] tony2001@php.net
.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 01 22:01:36 2025 UTC