ID: 22221
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Feedback
Bug Type: DBX related
Operating System: Linux 2.4.18-14 (redhat
PHP Version: 4.2.2
New Comment:
Internally in the dbx_pgsql driver, the code disables E_WARNING for
pg_fetch_array, fetches rows until no more rows are available (this is
detected by trapping the warning you got), then re-enables the
E_WARNING if it was enabled in the first place.
This is probably why you have to define your own error-handler to see
the warning at all.
Does this happen with any user-defined error-handler or is your setup
very specific? Is there an easy workaround without resorting to
@dbx_qeuery()? Could you post the code for your error-handler
(simplified if possible)?
Thanks, Marc.
Previous Comments:
------------------------------------------------------------------------
[2003-02-14 06:32:05] [EMAIL PROTECTED]
sorry for the typo:
please read:
after making a query that return *10* rows I get the message:
-------
pg_fetch_array() unable to jump to row 10 on PostgreSQL result index 4
in /somepath/library_connect.php line 68
------------------------------------------------------------------------
[2003-02-14 06:27:27] [EMAIL PROTECTED]
Hello,
I am using the default php modules with postgresql coming with redhat
8.0.
I have a code using the dbx function that work well in mysql.
When changing to postgresql (i.e. changing DBX_MYSQL to DBX_PGSQL in
function dbx_connect()) I get warnings that I don't get with mysql.
Note that those warning are difficult to see: you have to define your
own error_handler to see them!!!
That's what I do usually on my web sites.
In your error handler I have set the following message options:
(E_ERROR,E_WARNING,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_USER_ERROR,
E_USER_WARNING)
--------------------
OK, with that set up
after making a query that return 3 rows I get the message:
-------
pg_fetch_array() unable to jump to row 10 on PostgreSQL result index 4
in /somepath/library_connect.php line 68
-------
this corresponds to the following loop:
$query="select * from membership";
$result=dbx_query($socket,$query,DBX_RESULT_ASSOC);
$num_rows = $result->rows;
for ($i=0;$i<$num_rows;$i++) {
list(,$row)=each($result->data);
}
This type of code works well with the mysql driver. In postgresq it
seems it looks for indexes for 0 to 10 included!
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22221&edit=1