pg_result_status

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

pg_result_statusLee el estado del resultado

Descripción

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

pg_result_status() devuelve el estado del resultado result o el comando de ejecución de PostgreSQL asociado al resultado.

Parámetros

result

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

mode

Puede ser PGSQL_STATUS_LONG para devolver un estado numérico de result o PGSQL_STATUS_STRING para devolver la etiqueta del comando de result. Si el argumento no se especifica, PGSQL_STATUS_LONG es el valor por omisión.

Valores devueltos

Los valores de retorno posibles son PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_TUPLES_CHUNK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR y PGSQL_FATAL_ERROR si PGSQL_STATUS_LONG se especifica. De lo contrario, se devuelve un string que contiene la etiqueta del comando PostgreSQL.

Historial de cambios

Versión Descripción
8.1.0 The result parameter expects an PgSql\Result instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_result_status()

<?php

// Conexión a la base de datos
$conn = pg_pconnect("dbname=publisher");

// Ejecución de COPY
$result = pg_query($conn, "COPY autores FROM STDIN;");

// Obtención del estado
$status = pg_result_status($result);

// Determinación del estado
if ($status == PGSQL_COPY_IN)
echo
"La copia se ha realizado.";
else
echo
"La copia ha fallado.";

?>

El resultado del ejemplo sería:

La copia se ha realizado.

Ver también

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