Skip site navigation (1) Skip section navigation (2)

Re: [PHP-DB] pg_result_error()

From: Gerard Samuel <php-db(at)trini0(dot)org>
To: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>, php-db(at)lists(dot)php(dot)net
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: [PHP-DB] pg_result_error()
Date: 2003-12-12 14:19:36
Message-ID: 200312120908.18042.php-db@trini0.org (view raw or flat)
Thread:
Lists: pgsql-php
Im going to CC this to the PostgreSQL list also.

On Friday 12 December 2003 06:44 am, Martin Marques wrote:
> El Vie 12 Dic 2003 00:09, Gerard Samuel escribió:
> > What good is this function?
> > A quick example of the wall Im running into ->
> > $sql = 'INSERT INTO .....';
> > $result = pg_query($conn_id, $sql);
> > if ($result === false)
> > {
> >     var_dump( pg_result_error( $result ) );
>
> I would use here this:
> 	die(pg_result_error( $result ));

That is fine and all, but my original example was just an example of the non 
functionality of pg_result_error(), not how to handle errors when a query 
fails.
But for arguement sake, lets use your example in some dummy code[0].
$result is still boolean false, and pg_result_error() will still return an 
empty string, and using die, would just die, with no report of what happened.
Then whats the use of pg_result_error().

> > According to the manual, pg_result_error takes the result resource.
> > If that resource is boolean false for one reason or another, then
> > pg_result_error isn't useful.
> > Anyone has any other ideas, besides using
> > pg_last_error()?
>
> Did you try it?

Yes I've tried it.  In my DB class, Im currently using both pg_result_error() 
and pg_last_error(), with pg_last_error() being secondary (a fall back) to 
pg_result_error().
Because according to the manual ->
http://us2.php.net/manual/en/function.pg-last-error.php
--quote--
Error messages may be overwritten by internal PostgreSQL(libpq) function 
calls. It may not return appropriate error message, if multiple errors are 
occured inside a PostgreSQL module function.

Use pg_result_error(), pg_result_status() and pg_connection_status() for 
better error handling.
--quote--

So again, I beg the question.
What good is pg_result_error(), when you *must* feed it boolean false and it 
returns an empty string??

[0]
<?php

$conn = pg_connect("dbname=foo user=bar password=pass");

$sql = 'SELECT * FROM flagss';  // flags was misspelled
$result = @pg_query($conn, $sql);  // returns false
if ($result === false)
{
    die( pg_result_error($result) );  // results in an empty page????
}

?>


Responses

pgsql-php by date

Next:From: Martin MarquesDate: 2003-12-12 15:24:57
Subject: Re: [PHP-DB] pg_result_error()
Previous:From: Martin MarquesDate: 2003-12-12 12:43:09
Subject: Re: [ADMIN] PHP and autocommit of PostgreSQL 7.4

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group