Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Conexion Postgres - Php

Estas en el tema de Conexion Postgres - Php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Amigos buenos dias compañeros, hace tiempo no programo y estoy tratando de hacer un programa personal y me encuentro con el siguiente problema ! ) ...
  #1 (permalink)  
Antiguo 14/04/2012, 10:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Conexion Postgres - Php

Amigos buenos dias compañeros,

hace tiempo no programo y estoy tratando de hacer un programa personal y me encuentro con el siguiente problema

! ) Fatal error: Call to undefined function pg_pconnect() in C:\wamp\www\Gacnet\Gacnet.Modelo\Bd\Conexion_Postg res.php on line 25
Call Stack
# Time Memory Function Location
1 0.1188 679592 {main}( ) ..\Controlador_login.php:0
2 0.2301 800400 UsuarioDao->buscar_login( ) ..\Controlador_login.php:16
3 0.2301 800760 Conexion_Postgres->select( ) ..\UsuarioDao.php:46
4 0.2301 800760 Conexion_Postgres->Conectar( ) ..\Conexion_Postgres.php:46

y estos son los siguientes archivos
Conexion_postgres.php
Código PHP:
<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Conexion_Mysql
 *
 * @author Andres Facturacion
 */
class Conexion_Postgres{
    
//put your code herevar $conexion;
       
var $conexion;
        var 
$consulta;
        var 
$descripcion;

        public function 
Conectar()
        {
          
$host              "localhost";
          
$nombre_base_datos "Gacnet_Morelco";
          
$puerto            "5432";
          
$nombre_usuario    "postgres";
          
$contrasena        "postgres";
          
$this->conexion pg_connect("host=$host port=$puerto dbname=$nombre_base_datos user=$nombre_usuario password=$contrasena") or die ("fALLO LA CONEXION A LA BASE DE DATOS");
        }
  
//creacion de metodo insercion de datos(insert)
         
function insertar($tabla$valores)
            {
                   
$this->Conectar();
                   
$sSql='INSERT INTO '.$tabla.' VALUES ('.$valores.')';
                  
$this->consulta=@pg_query($this->conexion,$sSql);
                  if(
pg_errormessage())
                  {
                      return 
"ERROR: AL INSERTAR REGISTRO ".$sSql;
                  }
                   else
                   {
                       
pg_query($this->conexion,"COMMIT");
                       return 
"OK";
                   }
            }
   
//creacion de metodo de consulta(select)
            
function select($campos$tabla$condicion$orden)
            {
                   
$this->Conectar();
                   
$sSql='SELECT '.$campos.' FROM '.$tabla.' ';
                   if(
$condicion!="")
                   {
                       
$sSql=$sSql."WHERE ".$condicion." ";
                   }
                   if(
$orden!="")
                   {
                       
$sSql=$sSql."ORDER BY ".$orden;
                   }
                   
$this->consulta=pg_query($this->conexion,$sSql);
                   if(
pg_errormessage())
                   {
                       echo 
pg_errormessage()."CONSULTA = ".$sSql;
                   }
                          return 
$this->consulta;
            }
            
//creacion de metodo de consulta(select)
            
function fecha($fecha,$nmes)
            {
                   
$this->Conectar();
                   
$sSql="SELECT ADD_MONTHS('".$fecha."',".$nmes.")";
                
$this->consulta=pg_query($this->conexion,$sSql);
                if(
pg_errormessage())
                  {
                      return 
"ERROR: AL AUMENTAR LA FECHA ".$sSql;
                  }
                   else
                   {
                       
pg_query($this->conexion,"COMMIT");
                   }
                          return 
$this->consulta;
            }

  
//metodo que devuelve la cantidad de datos que arrojo la consulta(select)
                 
function retorna_descripcion($campos$tabla$condicion$orden)
            {
                   
$this->Conectar();
                   
$this->descripcion="";
                   
$this->consulta=$this->consulta($campos$tabla$condicion$orden);
                   while(
$row=pg_fetch_row($this->consulta))
                   {
                       
$this->descripcion=$row[0];
                   }
                   return 
$this->descripcion;
            }
  
//metodo que devuelve el valor de  una secuencia
            
function retorna_netxval($seq)
            {
                
$this->Conectar();
                   
$this->descripcion="";
                   
$sSql="SELECT NEXTVAL('".$seq."')";
                   
$this->consulta=pg_query($this->conexion,$sSql);
                   while(
$row=pg_fetch_row($this->consulta))
                   {
                       
$this->descripcion=$row[0];
                   }
                   return 
$this->descripcion;
            }
                
/*Realizar actualizacion*/
            
function actualizar($tabla$valores$condicion)
            {
                   
$this->Conectar();
                   
$sSql="UPDATE ".$tabla." SET ".$valores." WHERE ".$condicion;
                
$this->consulta=pg_query($this->conexion,$sSql);
                if(
pg_errormessage())
                  {
                      return 
"ERROR: AL ACTUALIZAR EL REGISTRO ".$sSql;
                  }
                   else
                   {
                       
pg_query($this->conexion,"COMMIT");
                       return 
"OK";
                   }
            }

            
/*Realizar borrado de datos*/
            
function eliminar($tabla$condicion)
            {
                   
$this->Conectar();
                   
$sSql="DELETE FROM ".$tabla." WHERE ".$condicion;
                
$this->consulta=pg_query($this->conexion,$sSql);
                   if(
pg_errormessage())
                  {
                      return 
"ERROR: AL ELIMINAR EL REGISTRO ".$sSql;
                  }
                   else
                   {
                       
pg_query($this->conexion,"COMMIT");
                       return 
"OK";
                   }
            }






        public function 
ejecutarSentencia($sql)
        {
          
$this->Conectar();
          
$this->consulta =@pg_query($this->conexion,$sql);
          return 
$this->consulta;
        }

        public function 
cerrarBase()
        {
            
//pg_free_result($this->consulta);
            
pg_close($this->conexion);
        }


}
?>
UsuarioDao
Código PHP:
<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of UsuarioDao
 *
 * @author Andres Facturacion
 */
include_once '../../Gacnet.Modelo/Bd/Conexion_Postgres.php';
class 
UsuarioDao {
    
//put your code here
    
public function UsuarioDao(){
        
$this->db= new Conexion_Postgres();
    }
 public function 
buscar_login($usu$pass)
    {
         
$con=$this->db->select("*","gn_usuario","gn_usu_usuario='".$usu."' and gn_usu_clave='".$pass."'","");
         if (
$con!=NULL)
               {
                return 
true;
               }
    else {
            return 
false;
        }
         
$this->db->cerrarBase();
    }
}
?>
Controlador_Login
Código PHP:
<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
include_once '../../Gacnet.Modelo/Dao/UsuarioDao.php';
include_once 
'../Vo/UsuarioVo.php';
session_start();
// creamos los objetos de dao y vo
$dao=new UsuarioDao();
$vo=new UsuarioVo();

$vo->setlogin($_POST["usuario"]);
$vo->setpass($_POST["pass"]);
//realizamos la consulta
$res=$dao->buscar_login($vo->getlogin(), $vo->getpass());
//verificamos la resuesta
if($res==true)
    {
     
$_SESSION['usu']=$vo->getlogin();
     
header("Location:../../Gacnet.Vista/Menu_Principal.php");
    }
 else{
      
session_destroy();
      
header("Location:../../index.php");
     }

?>
el programa se realizara en una base de datos en postgres
de antemano gracias por su colaboracion
  #2 (permalink)  
Antiguo 14/04/2012, 10:44
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Conexion Postgres - Php

El error claramente te está diciendo que la función no está definida. La razón es porque no tienes la extensión para conectarse con PostgreSQL.

Veo estás trabajando en Windows y con un paquete precompilado, ¿cierto?. Eso significa que tendrás que instalar PostgreSQL por aparte (posiblemente ya lo tengas) y el conector para funcionar con PHP; posiblemente encuentres un .dll en la página de PostgreSQL ... sino, a compilar ...

Suerte!!!

PD: Creo XAMPP tenía soporte para Postgres .. CREO.
__________________
I ♥ The Music!
  #3 (permalink)  
Antiguo 15/04/2012, 11:28
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por maturano Ver Mensaje
El error claramente te está diciendo que la función no está definida. La razón es porque no tienes la extensión para conectarse con PostgreSQL.

Veo estás trabajando en Windows y con un paquete precompilado, ¿cierto?. Eso significa que tendrás que instalar PostgreSQL por aparte (posiblemente ya lo tengas) y el conector para funcionar con PHP; posiblemente encuentres un .dll en la página de PostgreSQL ... sino, a compilar ...

Suerte!!!

PD: Creo XAMPP tenía soporte para Postgres .. CREO.
ya he intentado absolutamente todo, pero sale el mismo error no habra algun programa como wampserver que en vez de venir con Mysql este ligado a PostgreSQL
  #4 (permalink)  
Antiguo 15/04/2012, 20:30
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Conexion Postgres - Php

bueno, los paquetes como xampp, wamp vienen por defecto con mysql, acá http://phpwebscript.blogspot.com/200...port-with.html hay un post de como instalar postgres en xampp, verificalo y nos comentas a ver como te fue.

Fuera de lo que es tu duda, porque si estas trabajando con OOP no utilizas PDO??, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 16/04/2012, 09:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno, los paquetes como xampp, wamp vienen por defecto con mysql, acá http://phpwebscript.blogspot.com/200...port-with.html hay un post de como instalar postgres en xampp, verificalo y nos comentas a ver como te fue.

Fuera de lo que es tu duda, porque si estas trabajando con OOP no utilizas PDO??, saludos
el pdo ya lo utiliza y me salia el siguiente error

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\wamp\www\pdo\consulta-comun.php on line 3
( ! ) PDOException: could not find driver in C:\wamp\www\pdo\consulta-comun.php on line 3
  #6 (permalink)  
Antiguo 16/04/2012, 09:47
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por andresito12_19 Ver Mensaje
el pdo ya lo utiliza y me salia el siguiente error

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\wamp\www\pdo\consulta-comun.php on line 3
( ! ) PDOException: could not find driver in C:\wamp\www\pdo\consulta-comun.php on line 3
ejecutando phpinfo() me doy cuenta que ninguna de las extensiones de postgres no estan funcionando no cargan, ni siquiera el pdo solo cargan los de mysql,sqlelite..
ayuda por favor
  #7 (permalink)  
Antiguo 16/04/2012, 10:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Conexion Postgres - Php

Yo te recomendaría que usaras Zend Server Community Edition ya trae soporte para PostgreSQL, MySQL, SQL Server y Oracle: http://www.zend.com/en/products/server-ce/
  #8 (permalink)  
Antiguo 17/04/2012, 08:50
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por GatorV Ver Mensaje
Yo te recomendaría que usaras Zend Server Community Edition ya trae soporte para PostgreSQL, MySQL, SQL Server y Oracle: http://www.zend.com/en/products/server-ce/
hola tienes un manual para este servidor web o me podrias indicar la forma de instalarlo para que tenga soporte con postgres?
  #9 (permalink)  
Antiguo 17/04/2012, 09:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Conexion Postgres - Php

Simplemente descarga el instalador e indica en las opciones que quieres el conector para PostgreSQL y listo.

Saludos.
  #10 (permalink)  
Antiguo 17/04/2012, 10:10
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por GatorV Ver Mensaje
Simplemente descarga el instalador e indica en las opciones que quieres el conector para PostgreSQL y listo.

Saludos.
Ya lo descargue pero no sale Postgres por ningun lado tiene Oracle, Mysql, SQLpero postgres nada
  #11 (permalink)  
Antiguo 17/04/2012, 10:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Conexion Postgres - Php

Debe de venir por defecto, al finalizar la instalación en la consola de administración revisa el php info.
  #12 (permalink)  
Antiguo 17/04/2012, 17:15
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Conexion Postgres - Php

Cita:
Iniciado por GatorV Ver Mensaje
Debe de venir por defecto, al finalizar la instalación en la consola de administración revisa el php info.
Si trae el conector pdo_pgsql y pgsql por default.
__________________
Drupal Argentina

Etiquetas: conexion, php, postgres, registro, sql, tabla, usuarios
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 22:51.