|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-03-07 18:13 UTC] valiak at gmail dot com
Description:
------------
i've tried to localize to as smallest code as I could
the correct result happens even if you comment the include line or the global directive or not using exceptions ... (there are few other modifications too)
it happens with the cli version and with the apache module version
ceco@base ~/tmp/pg_last_notice
$ php -v
PHP 5.0.3 (cli) (built: Mar 2 2005 13:13:40)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
compiled with
./configure --with-gettext --with-oci8 --with-apxs=/usr/bin/apxs --with-gd --with-pgsql --with-readline --with-zlib --with-mysql=/usr --with-
jpeg-dir --with-png-dir --enable-mbstring --enable-sockets --enable-pcntl --enable-sigchild --with-exec-dir=/usr/bin --with-config-file-path=
/etc/php5
pgsql
PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 8.0.1
Multibyte character support => enabled
SSL support => disabled
Active Persistent Links => 0
Active Links => 0
Directive => Local Value => Master Value
pgsql.allow_persistent => Off => Off
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited
if some more info is needed tell me what to do?
Reproduce code:
---------------
ceco@base ~/tmp/pg_last_notice
$ cat test.inc.php
<?
?>
ceco@base ~/tmp/pg_last_notice
$ cat test.php
<?
/*
this is a dummy pg function just to raise notice, called from this file
CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS $$
begin
RAISE NOTICE '11111';
return 'f';
end;
$$ LANGUAGE plpgsql;
*/
define(TTT, pg_connect('user=test password=test dbname=test'));
include_once 'test.inc.php';
function tester() {
global $t;
$res = pg_query(TTT, 'SELECT test_notice()');
$result = pg_fetch_row($res, 0);
pg_free_result($res);
if ($result[0] == 'f') {
throw new Exception(pg_last_notice(TTT));
}
}
try {
echo tester();
echo 2;
}
catch (Exception $e) {
echo $e->getMessage(), 1;
}
?>
Expected result:
----------------
ceco@base ~/tmp/pg_last_notice
$ php test.php
NOTICE: 111111
Actual result:
--------------
ceco@base ~/tmp/pg_last_notice
$ php test.php
1
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 22:00:01 2025 UTC |
I made up a php test script for this: ext/pgsql/tests/80_bug32223.phpt But i cannot reproduce your behavior with 5.1-dev or HEAD. Maybe it is postgres? marcus=# select version(); version -------------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 8.0.1 on i586-mandrake-linux-gnu, compiled by GCC i586-mandrake-linux-gnu-gcc (GCC) 3.4.3 (Mandrakelinux 10.2 3.4.3-7mdk) Works in all versions for me. So please try the following: php run-tests.php ext/pgsql/tests/80_bug32223.phpt If that fails, can you do a 'memcheck' on that? And tell me your postgres version.