Foros del Web » Programando para Internet » PHP »

Obtener errores de Postgres en PHP

Estas en el tema de Obtener errores de Postgres en PHP en el foro de PHP en Foros del Web. Buenas tardes, he creado una función en en Postgres que me crea una excepción en ciertos casos. El problema es que si escribo directamente el ...
  #1 (permalink)  
Antiguo 19/07/2011, 13:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 13 años, 8 meses
Puntos: 1
Obtener errores de Postgres en PHP

Buenas tardes, he creado una función en en Postgres que me crea una excepción en ciertos casos. El problema es que si escribo directamente el código SQL en pgadmin me muestra el error, pero no logro que php reciba el error para mostrarlo al usuario.

Este es mi código:
Código PHP:
        if (!pg_connection_busy($conexion)) {
            
pg_send_query($conexion,"$sentencia");
        }
        
$resultado pg_get_result($conexion);
        
$res1 =  pg_result_error($resultado);
        
pg_close($conexion); 
Así está escrito en la documentación de php, pero a mi no me devuelve ningún error.

PD: Vi este mismo problema en el foro de postgres y mandaron al usuario para php. Espero que a mi no me hagan lo contrario.

Última edición por Dark_Musician; 19/07/2011 a las 13:14
  #2 (permalink)  
Antiguo 19/07/2011, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 9 meses
Puntos: 2534
Respuesta: Obtener errores de Postgres en PHP

Es normal que el código por si mismo no te haga nada, ¿pero que pasaría si imprimes el valor que te devuelve dicha función?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/07/2011, 13:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Obtener errores de Postgres en PHP

Lo estoy mandando a imprimir. Me devuelve una cadena vacía. Lo hago con
Código PHP:
echo $res1;

//Y otra cosa: La variable $resultado me devuelve el siguente valor 'Resource id #26', 
//pero $res1 una cadena vacía 
Y postgres sí está devolviendo un error, cuando pego la consulta en Postgres devuelve esto: "ERROR: No hay suficiente cantidad del producto 2".

Última edición por Dark_Musician; 19/07/2011 a las 13:45 Razón: Agregar código
  #4 (permalink)  
Antiguo 19/07/2011, 13:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 9 meses
Puntos: 2534
Respuesta: Obtener errores de Postgres en PHP

En lugar de solo imprimir usa var_dump(); para conocer el valor exacto de dicha variable.
Cita:
Returns a string if there is an error associated with the result parameter, FALSE otherwise.
Pues, en la mayoría de los casos un FALSE no se ve cuando se imprime, posiblemente tu consulta ni siquiera tenga un error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/07/2011, 14:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Obtener errores de Postgres en PHP

Sí tiene un error, incluso he probado con alguna consulta que de un error de antemano como "SELECT * FROM tablaquenoexiste"(no tengo ninguna tabla llamada así) y no me muestra nada. Y no es un false lo que devuelve. Si usara pg_query() recibiría un false. Por eso uso pg_send_query(); es como dice en la documentación. En realidad el problema que tengo es extraño.
  #6 (permalink)  
Antiguo 19/07/2011, 14:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 9 meses
Puntos: 2534
Respuesta: Obtener errores de Postgres en PHP

Bueno, ¿cual es el valor exacto que recibes de dicha variable usando var_dump()?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 19/07/2011, 14:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Obtener errores de Postgres en PHP

De $resultado: resource(26) of type (pgsql result)
De $res1: string(0) ""
  #8 (permalink)  
Antiguo 19/07/2011, 14:30
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Obtener errores de Postgres en PHP

Lo solucioné cambiándome de nuevo a la función pg_query(); así:
Código PHP:
Ver original
  1. pg_query($sentencia) or die(pg_last_error());

Ja ja, mucho más sencillo de lo que estaba intentando.
Gracias por la ayuda.

Etiquetas: exepcion, postgres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:33.