PHP 8.5.0 Alpha 2 available for testing

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_result_status Get status of query result

Description

pg_result_status(PgSql\Result $result, int $mode = PGSQL_STATUS_LONG): string|int

pg_result_status() returns the status of the PgSql\Result instance, or the PostgreSQL command completion tag associated with the result

Parameters

result

An PgSql\Result instance, returned by pg_query(), pg_query_params() or pg_execute()(among others).

mode

Either PGSQL_STATUS_LONG to return the numeric status of the result, or PGSQL_STATUS_STRING to return the command tag of the result. If not specified, PGSQL_STATUS_LONG is the default.

Return Values

Possible return values are PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_TUPLES_CHUNK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR if PGSQL_STATUS_LONG is specified. Otherwise, a string containing the PostgreSQL command tag is returned.

Changelog

Version Description
8.1.0 The result parameter expects an PgSql\Result instance now; previously, a resource was expected.

Examples

Example #1 pg_result_status() example

<?php

/ Connect to the database
$conn = pg_pconnect("dbname=publisher");

/ Execute a COPY
$result = pg_query($conn, "COPY authors FROM STDIN;");

/ Get the result status
$status = pg_result_status($result);

/ Determine status
if ($status == PGSQL_COPY_IN)
echo
"Copy began.";
else
echo
"Copy failed.";

?>

The above example will output:

Copy began.

See Also

add a note

User Contributed Notes 4 notes

up
2
Anonymous
11 years ago
This function is useful it may not return a full non fatal error but you want to see if the query completes anyway.

example

<?PHP
/connect to pg database
/ create PGSQL

$PGSTAT = pg_result_status($PGSQL);/defaults to long

/And run it through a check for example

if(($PGSTAT == 1) || ($PGSTAT == 2)){
/ for query results;
}else if(($PGSTAT == 3) || ($PGSTAT == 4)){
/ for copy results;
}
if((
$PGSTAT != 0) && ($PGSTAT != 5) && ($PGSTAT != 6) && ($PGSTAT != 7)){
/ your code;
}else{
/ $ERRORS codes;
}
/ This is worked the best for me so far I tried using
/ The command tag and I seem to still get an numeric result
/example
/$PGSTAT = pg_result_status($PGSQL, PGSQL_COMMAND_OK);
/ got something like tuples ok so I recommend just use default long
?>
or use what ever condition check you feel fit
up
1
romix at gmx dot de
22 years ago
0 = PGSQL_EMPTY_QUERY
1 = PGSQL_COMMAND_OK
2 = PGSQL_TUPLES_OK
3 = PGSQL_COPY_TO
4 = PGSQL_COPY_FROM
5 = PGSQL_BAD_RESPONSE
6 = PGSQL_NONFATAL_ERROR
7 = PGSQL_FATAL_ERROR
up
-1
Meej Vaj
20 years ago
If on "accident" your program passes pg_result_status a variable that is NOT a actual pg resource, it will return an empty string.
(This is important to know if you want to make sure a pg resource is "good" before attempting some operation on it).
up
-1
dean at deansas dot org
12 years ago
The postgres docs say that PHP should never be able to return PGRES_NONFATAL_ERROR

"A result of status PGRES_NONFATAL_ERROR will never be returned directly by PQexec or other query execution functions" http://www.postgresql.org/docs/current/static/libpq-exec.html

Therefore you cannot use this function to check if this query produced a notice.
To Top

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant