Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Tratamiento de Errores, php+PostgreSQL +pg_errormessage

Estas en el tema de Tratamiento de Errores, php+PostgreSQL +pg_errormessage en el foro de PostgreSQL en Foros del Web. Hola amigo! Bueno os comento mi situacion. Quiero tratar el siguiente caso: -cuando realizo un $modificar="select * from tabla where codigo=codigoX"; $resultado = @ pg_query($conn,$modificar); ...
  #1 (permalink)  
Antiguo 30/11/2007, 02:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Tratamiento de Errores, php+PostgreSQL +pg_errormessage

Hola amigo!
Bueno os comento mi situacion. Quiero tratar el siguiente caso:

-cuando realizo un $modificar="select * from tabla where codigo=codigoX"; $resultado = @ pg_query($conn,$modificar);
if (!$resultado)
$error=pg_errormessage($conn);

Si ese codigoX no existe en la BBDD, no me produce ningun error. He observado que pg_errormessage muestra un mensaje cuando hay algun error de sintaxis. Lo que yo quiero es tratar cuando no hay errores de sintaxis, cuando esa SQL no me devuelve nada, queria saber si se puede recoger con alguna funcion PHP este tipo de situaciones. Me pasa lo mismo con los Update.

Por cierto y si os sirve de algo, el @ antes de una funcion pg_loqsea evita que muestre los errores del tipo:

pg_pconnect() [<a href='function.pg-pconnect'>function.pg-pconnect</a>]: Unable to connect to PostgreSQL server: FATAL: connection limit exceeded for non-superusers
pg_query(): supplied argument is not a valid PostgreSQL link resource

asi no lo muesta en la pagina php y deja continuar y asi tratar el error como tu quieras(que es mi caso, que los quiero paginar en otro php con el tipo de error correspondiente y definirlo con lo que me devuelve la funcion pg_errormessage)

espero haberme explicado bien y que sirva de algo lo expuesto,
saludos
  #2 (permalink)  
Antiguo 30/11/2007, 08:40
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Re: Tratamiento de Errores, php+PostgreSQL +pg_errormessage

Cita:
Si ese codigoX no existe en la BBDD, no me produce ningun error. He observado que pg_errormessage muestra un mensaje cuando hay algun error de sintaxis.
No tiene sentido... ¿por qué debería lanzar un error en esa situación?
Cita:
Lo que yo quiero es tratar cuando no hay errores de sintaxis, cuando esa SQL no me devuelve nada, queria saber si se puede recoger con alguna funcion PHP este tipo de situaciones. Me pasa lo mismo con los Update.
Podrías crear funciones y desde ahí lanzar los errores, pero creo que sería una manera estúpida de complicarse la vida teniendo la posibilidad de usar PHP para eso (sin necesidad de recurrir a los errores que manda el motor de BD). En todo caso te sugiero que revises bien la documentación tanto de PostgreSQL como de PHP.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 03/12/2007, 04:53
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Tratamiento de Errores, php+PostgreSQL +pg_errormessage

que tal
if (!$resultado)
$error='No existe el codigo en BD';
???

Unable to connect to PostgreSQL server: FATAL: connection limit exceeded for non-superusers
Esto lo he contestado en otro post, puedes buscarlo.

Un saludo
  #4 (permalink)  
Antiguo 03/12/2007, 05:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Re: Tratamiento de Errores, php+PostgreSQL +pg_errormessage

Cita:
Iniciado por seyko Ver Mensaje
que tal
if (!$resultado)
$error='No existe el codigo en BD';
???
Asi lo hare finalmente. Era mas qu nada por recoger los ORA-xxx y demas errores, aunque lo recojo con

if (!$resultado)
{
$error1="no exite el codigo en BD"
$error2= pg_errormessage($conn);

if ($error2=null)
return $error1
else
return $error2
}

aunque en este caso no se que devuelve $error2= pg_errormessage($conn); en el caso de que no haya errores de sixtaxis,conexion,ORA-xxxx, px al compara
if ($error2=null) no se si eso sera alguna vez cierto. Lo segire mirando.
gracias por las respuestas
un saludo
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 21:00.