Foros del Web » Programando para Internet » PHP »

Error pg_query()

Estas en el tema de Error pg_query() en el foro de PHP en Foros del Web. Hola a todos. Estoy a vueltas con las base de datos en postgres. Me sale este error: Warning: pg_close(): 5 is not a valid PostgreSQL ...
  #1 (permalink)  
Antiguo 03/04/2010, 06:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 2 meses
Puntos: 1
Error pg_query()

Hola a todos. Estoy a vueltas con las base de datos en postgres.

Me sale este error:

Warning: pg_close(): 5 is not a valid PostgreSQL link resource in C:\xampp\htdocs\locales\dll\func_comun.php on line 73

Que si en vez de cerrar la conexión con:
Pg_close($conex);

La cierro con:
pg_close();

Deja de salirme el error.

En el archivo en el que me sale tengo varias sql para una misma conexion a la base de datos, he probado a usar varias conexiones pero sigue saliendo.

Alguien sabe que puede ocurrir??

Saludos!
  #2 (permalink)  
Antiguo 03/04/2010, 06:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Error pg_query()

El error lo dice claramente, que la variable que estás pasando no es un resource, verifica que estés usando la variable que hace la conexión a la base de datos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/04/2010, 06:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error pg_query()

La estoy usando, lo que pasa que cuando en un mismo documento hago varias consultas con la misma conexion, me sale ese error y si en el pg_close() no le paso la cnexion, el error desaparece, por eso que no entiendo muy bien que es lo que esta ocurriendo. En otros casos hago varias consultas con la misma conexion y no me sale el error. He probado a usar varias conexiones y consultas diferentes pero el error es el mismo y solo me sale en 2 o 3 de mis paginas php.

Gracias por tu ayuda!
  #4 (permalink)  
Antiguo 05/04/2010, 09:27
cce
 
Fecha de Ingreso: junio-2009
Mensajes: 92
Antigüedad: 14 años, 10 meses
Puntos: 0
espero haberte entendido: tenes liberar las consultas, si haces mas de una, perimero libera una y luego haces la segunda..con: pg_free_resulta($consulta1);

pg_free_result();

Última edición por GatorV; 05/04/2010 a las 09:51
  #5 (permalink)  
Antiguo 05/04/2010, 10:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error pg_query()

Es decir que puedo realizar varias consultas con una misma conexión pero que la variable que las contiene se llame distinto y liberar una antes de realizar la otra. Es eso? Esto creo que ya lo había probado pero te lo confirmaré el miércoles cuando me ponga con ello.

Muchas gracias por tu ayuda! saludos!
  #6 (permalink)  
Antiguo 07/04/2010, 01:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error pg_query()

He liberado la consulta como me habeis dicho pero sigue saliendo el mismo error. Esta sería el documento en el que me sale el error.

Código PHP:
<?php
//Almacenamos en ella los datos que el usuario ha insertado en el formulario de búsqueda. Para así poder realizar la paginación ya que se recarga la pagina y perdemos los datos de las variables.
if(!isset($_SESSION))
    {
    
session_name('busqueda');
    
session_start();
    }
seguridad('admin');
//Abrir conexión
$conex=conectar();
extract($_POST);
//paginación de resultados
$reg_inicial 0
$grupo=2;
if (isset(
$_GET['reg_ini'])) {
  
$reg_inicial $_GET['reg_ini']; 
}
else
    {
    
//Asignar los datos del formulario en variables de sesion
    
$_SESSION['nombre_act'] = $nombre_act;
    
$_SESSION['calle'] = $calle;
    
$_SESSION['actividad'] = $actividad;
    
$_SESSION['usuario_local'] = $usuario;
    }

$sql="SELECT L.id_local,nombre_act,actividad,calle,numero,planta,cnae,auren_cenae,cualificacion,I.nombre AS nombre_inq,cargo,I.direccion as direccion_inq,I.telefono_movil AS telefono_inq,I.email as email_inq,P.nombre AS nombre_pro,P.direccion as direccion_pro,P.telefono_movil AS telefono_pro,P.email as email_pro,usuario FROM locales L INNER JOIN usuarios U ON U.id_usuario=L.id_usuario INNER JOIN inquilinos I ON I.id_local=L.id_local INNER JOIN propietarios P ON P.id_local=L.id_local WHERE 1=1";
    if(!empty(
$_SESSION['nombre_act']))
        {
        
        
$sql=$sql." AND nombre_act ILIKE '".$_SESSION['nombre_act']."%'";
        }
    if(!empty(
$_SESSION['calle']))
        {
        
$sql=$sql." AND calle ILIKE '".$_SESSION['calle']."%'";
        }
    if(!empty(
$_SESSION['actividad']))
        {
        
$sql=$sql." AND actividad ILIKE '".$_SESSION['actividad']."%'";
        }
    if(!empty(
$_SESSION['usuario_local']))
        {
        
$sql=$sql." AND U.usuario ILIKE '".$_SESSION['usuario_local']."%'";
        }
//Calcular el total de filas resultantes
$sql2=$sql;
$matriz=consulta($conex,$sql);    
$totalpg_num_rows($matriz);
liberar($matriz);
desconectar($conex);
if(
$total!=0)
    {
    
$conex=conectar();
    
$sql2.=" ORDER BY id_local DESC LIMIT ".$grupo." OFFSET ".$reg_inicial;
    
$matriz2=consulta($conex,$sql2);    
    while (
$fila pg_fetch_assoc($matriz2)) 
    {
    echo 
"<div style='border: #000 1px solid';>";
    echo 
"<table border=0><tr><td>";
    echo 
"<table border=0 cellspacing='5' cellpading='5'>";
    echo 
"<tr><td><b>LOCAL</b></td></tr>";
    echo 
"<tr><td><b>Id local: </b>".$fila['id_local']."</td></tr>";
    echo 
"<tr><td><b>Nombre actividad: </b>".$fila['nombre_act']."</td></tr>";
    echo 
"<tr><td><b>Actividad: </b>".$fila['actividad']."</td></tr>";
    echo 
"<tr><td>";
    if(
$fila['planta']=='-'||$fila['planta']=='')
        {
        echo 
"<b>Calle: </b>".$fila['calle']."  ".$fila['numero'];
        }
    else
        {
        echo 
"<b>Calle: </b>".$fila['calle']."  ".$fila['numero'].", ".$fila['planta'];
        }
    echo 
"</tr></td>";
    echo 
"<tr><td><b>CNAE: </b>".$fila['cnae']." ";
    echo 
"<b>Auren CNAE: </b>".$fila['auren_cenae']."</td></tr>";
    echo 
"<tr><td><b>Cualificacion: </b>".$fila['cualificacion']."</td></tr> ";
    echo 
"<tr><td><a href='index.php?menu=mlocal&id=".$fila['id_local']."'>MODIFICAR</a>";
    echo 
" ";
    echo 
"<a href='index.php?menu=eliminar&id=".$fila['id_local']."&param=l'>ELIMINAR</a></td></tr>";
    echo 
"</table></td>";
    echo 
"<td valign='top'><table border=0 cellspacing='5' cellpading='5'>";
    if(empty(
$fila['nombre_pro']))
        {
        echo 
"<tr><td><a href='index.php?menu=propietario&id=".$fila['id_local']."'>INSERTAR PROPIETARIO</a></td></tr>";
        }
    else
        {
        echo 
"<tr><td><b>PROPIETARIO</b></td></tr>";
        echo 
"<tr><td><b>Nombre: </b>".$fila['nombre_pro']."</td></tr>";
        echo 
"<tr><td><b>Direcci&oacute;n: </b>".$fila['direccion_pro']."</td></tr>";
        echo 
"<tr><td><b>Tel&eacute;fono: </b>".$fila['telefono_pro']."</td></tr>";
        echo 
"<tr><td><b>Email: </b>".$fila['email_pro']."</td></tr>";
        echo 
"<tr><td><a href='index.php?menu=mpropie&id=".$fila['id_local']."'>MODIFICAR</a>";
        echo 
" ";
        echo 
"<a href='index.php?menu=eliminar&id=".$fila['id_local']."&param=p'>ELIMINAR</a></td></tr>";
        }
    echo 
"</table></td>";
    echo 
"<td valign='top'><table border=0 cellspacing='5' cellpading='5'>";
    if(empty(
$fila['nombre_inq']))
        {
        echo 
"<tr><td><a href='index.php?menu=inquilino&id=".$fila['id_local']."'>INSERTAR INQUILINO</a></td></tr>";
        }
    else
        {
        echo 
"<tr><td><b>INQUILINO</b></td></tr>";
        echo 
"<tr><td><b>Nombre: </b>".$fila['nombre_inq']."</td></tr>";
        echo 
"<tr><td><b>Cargo: </b>".$fila['cargo']."</td></tr>";
        echo 
"<tr><td><b>Direcci&oacute;n: </b>".$fila['direccion_inq']."</td></tr>";
        echo 
"<tr><td><b>Tel&eacute;fono: </b>".$fila['telefono_inq']."</td></tr>";
        echo 
"<tr><td><b>Email: </b>".$fila['email_inq']."</td></tr>";
        echo 
"<tr><td><a href='index.php?menu=minqui&id=".$fila['id_local']."'>MODIFICAR</a>";
        echo 
" ";
        echo 
"<a href='index.php?menu=eliminar&id=".$fila['id_local']."&param=i'>ELIMINAR</a></td></tr>";        
        }
    echo 
"</table></td>";
    echo 
"<td valign='top'><table border=0>";
    echo 
"<tr><td>IM&Aacute;GENES</td></tr>";
    echo 
"</table></td>";
    echo 
"</tr><table border=0 cellspacing='5' cellpading='5'><tr><td><b>USUARIO</b></td>";
    echo 
"<td>".$fila['usuario']."</td></tr></table>";
    echo 
"</tr></table></div><br />";
    }
    
//Enlaces de paginación
    
if($total>1)
    {
    if(
$reg_inicial!=0)
        {
        echo 
"<a href='index.php?menu=listar_locales&reg_ini=0'>Inicio</a> ";
        }
    if (
$reg_inicial 0){
        
$tmp $reg_inicial $grupo;
        echo 
"<a href='index.php?menu=listar_locales&reg_ini=".$tmp."'>Anteriores</a> ";
    }
    
    if (
$reg_inicial < ($total $grupo)){
        
$tmp $reg_inicial $grupo;
        echo 
"<a href='index.php?menu=listar_locales&reg_ini=".$tmp."'>Siguientes</a> ";
    }
    if(
$reg_inicial<$total-$grupo)
        {
        if(
$reg_inicial<$total-$grupo)
        {
        
$tmp=$total/$grupo;
        
$tmp=(int)$tmp*$grupo;
        if(
$tmp==$total)
            {
            
$tmp=$tmp-$grupo;
            }
        echo 
"<a href='index.php?menu=listar_locales&reg_ini=".$tmp."'>Final</a> ";
        }
        }
    }
}
else
    {
    
header("Location: index.php?menu=locales&msg=Ese local no existe en la base de datos.");
    }
liberar($matriz2);
desconectar($conex);
?>
Me salen todos los datos perfectamente paginados y me sale el siguiente error:

Warning: pg_close(): 11 is not a valid PostgreSQL link resource in C:\xampp\htdocs\locales\dll\func_comun.php on line 73
  #7 (permalink)  
Antiguo 12/04/2010, 02:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error pg_query()

Ya he conseguido saber poruqe me salia este error. Era porque cerraba la conexión dos veces.

Gracias a todos!

Etiquetas: Ninguno
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 02:22.