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???? } ?>