Foros del Web » Programando para Internet » PHP »

problemas de conexión a la bd con postgresql

Estas en el tema de problemas de conexión a la bd con postgresql en el foro de PHP en Foros del Web. Buenas gusto en saludarlo nuevamente por aca en busca de su ayuda. veran estoy tratando de hacer una conexion a una bd uso pg_dbname pero ...
  #1 (permalink)  
Antiguo 03/07/2014, 17:57
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
problemas de conexión a la bd con postgresql

Buenas gusto en saludarlo nuevamente por aca en busca de su ayuda. veran estoy tratando de hacer una conexion a una bd uso pg_dbname pero no me la realiza.

aca el codigo que tengo hecho.

Código PHP:
Ver original
  1. <?php
  2. include ("config.php");
  3. if (isset($_POST['indicador']) && !empty ($_POST['indicador']) && isset ($_POST['clave']) && !empty ($_POST['clave']))
  4. {
  5. $con = "host=$host port=$port user=$user password=$pass";
  6. $cnx = pg_connect($con) or die ("Error de conexion. ". pg_last_error());
  7.  
  8. pg_dbname("db,cnx") or die("No se ha podido conectar");
  9.    
  10. $sel=pg_query ("SELECT INDICADOR,CLAVE FROM USUARIO WHERE INDICADOR='$_POST[indicador]'",$con);
  11.    
  12.     $sesion=pg_fetch_array($sel);              
  13.    
  14.     if ($_POST['indicador'] == $sesion['CLAVE'])
  15. {
  16.     $_SESSION['username'] = $_POST['indicador'];
  17.     echo "<script language='JavaScript' type='text/JavaScript'> location.href='../system.php'</script>";
  18. }else { echo"<script language='JavaScript' type='text/JavaScript'> location.href='../html/autentica_clave.html'</script>";
  19.     }
  20. }
  21. else { echo"<script language='JavaScript' type='text/JavaScript'> location.href='../html/autentica_clave.html'</script>";
  22. }
  23.    
  24. ?>
  #2 (permalink)  
Antiguo 03/07/2014, 18:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problemas de conexión a la bd con postgresql

De entrada, pg_dbname() devuelve el nombre de la base de datos actual y no creo que sea eso lo que necesitas; aparte de que el parámetro enviado es incorrecto. Lee el manual: http://www.php.net/manual/es/function.pg-dbname.php

En pg_connect() puedes seleccionar la base de datos a trabajar: http://www.php.net/manual/es/function.pg-connect.php
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 03/07/2014, 20:18
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: problemas de conexión a la bd con postgresql

Gracias por tu respuesta, si realizo esto pg_connect("dbname=nombredb"); igual me manda el mensaje error en la conexion. el manual lo he revisado de pies a cabeza.
  #4 (permalink)  
Antiguo 03/07/2014, 20:35
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: problemas de conexión a la bd con postgresql

hago esto y nada
Código PHP:
Ver original
  1. $new ="host=$host port=$port user=$user password=$pass db=$db";
  2. $new1 =pg_connect ($new) or die ("base de datos erronea");

estoo

Código PHP:
Ver original
  1. $conn_string = "host=$host port=$port db=$db user=$user password=$pass";
  2. $dbconn4 = pg_connect($conn_string) or die("No se ha podido conectar");
  #5 (permalink)  
Antiguo 03/07/2014, 21:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problemas de conexión a la bd con postgresql

Hola,

Amigo... lo mas importante... Ud tiene PostgreeSQL instalado y corriendo como demonio/servicio ?

RubyStack de Bitnami trae PostgreeSQL ademas de PHP ... incluso viene con phppgadmin que lo puede acceder asi: http://localhost/phppgadmin/


Es importante notar que no existe "db_select()" equivalente al de MySQL como te indica @Triby, ... en su lugar.. una vez que hayas chequeado tengas el servicio o demonio corriendo....... yo lo haria asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $auth = "user=$user password=$pass";
  4.  
  5. // solo prueba la conexion, no db selection
  6. $conn = pg_connect("host=localhost $auth");  
  7. if (!$conn)
  8.     throw new Exception ("Error de conexion "+pg_last_error());
  9.  
  10. // conecto a una DB en particular... y a partir de ahora a las que quiera
  11. $conn = pg_pconnect("dbname=sample_test $auth");
  12. if (!$conn)
  13.   throw new Exception ("Error de conexion "+pg_last_error());

Te recomiendo chequees las variables $user y $pass sean las definidas en tu config.php y recuerda que generalmente el usuario por defecto es 'postgres' .. o al menos te pregunta si quieres dejarlo asi en las instalaciones que vi
__________________
Salu2!

Última edición por Italico76; 04/07/2014 a las 06:14
  #6 (permalink)  
Antiguo 04/07/2014, 11:21
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: problemas de conexión a la bd con postgresql

saludos @italico76 tengo. bitnami-wappstack-5.3.15-0-windows-installer.

este es mi config

Código PHP:
Ver original
  1. <?php
  2.     $host= "localhost";
  3.     $port="5432";
  4.     $user="postgres";
  5.     $pass="xxxxxx";
  6.     $db="activos";
  7. ?>

lo coloque como mencionas y solo me manda una pagina en blanco.
  #7 (permalink)  
Antiguo 04/07/2014, 11:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problemas de conexión a la bd con postgresql

Cita:
Iniciado por keivis Ver Mensaje
lo coloque como mencionas y solo me manda una pagina en blanco.
Eso suena a error de PHP... tienes activado que se muestren todos los errores ?

Código PHP:
<?php

// al comienzo
error_reporting(-1);   // tambien se puede desde php.ini
Cuentame a ver que error tienes..... y para que veas..... hay mas opciones..... acabo de conectar via ODBC:

Código PHP:
<?php
// Script para ODBC

$user        'postgres';
$pass        'xxxxx';
$server        'localhost';
$database    'sample_test';

$odbc_string "Driver={PostgreSQL ANSI};Server=$server;Database=$database;";
$conexion odbc_connect ($odbc_string,$user,$pass);
Incluso se puede via PDO... que accede via ODBC


Ahora algo interesante.......es que tu no puedes mantener abiertas dos bases de datos a la vez, asi que si lo necesitaras debes usar schemas:

http://www.postgresqlforbeginners.co...12/schema.html
__________________
Salu2!

Última edición por Italico76; 04/07/2014 a las 11:48
  #8 (permalink)  
Antiguo 04/07/2014, 12:14
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: problemas de conexión a la bd con postgresql

solo me manda la pantalla en blanco.

Código PHP:
Ver original
  1. <?php
  2. include ("config.php");
  3. if (isset($_POST['indicador']) && !empty ($_POST['indicador']) && isset ($_POST['clave']) && !empty ($_POST['clave']))
  4. {
  5. $conn = pg_connect("host=$host port=$port user=$user password=$pass");  
  6. if (!$conn)
  7.     throw new Exception ("Error de conexion "+pg_last_error());
  8.  
  9. // conecto a una DB en particular... y a partir de ahora a las que quiera
  10. $conn = pg_pconnect("dbname=$db $user");
  11. if (!$conn)
  12.   throw new Exception ("Error de conexion "+pg_last_error());
  13.    
  14. $sel=pg_query ("SELECT INDICADOR,CLAVE FROM USUARIO WHERE INDICADOR='$_POST[indicador]'",$con);
  15.    
  16.     $sesion=pg_fetch_array($sel);              
  17.    
  18.     if ($_POST['indicador'] == $sesion['CLAVE'])
  19. {
  20.     $_SESSION['username'] = $_POST['indicador'];
  21.     echo "<script language='JavaScript' type='text/JavaScript'> location.href='../system.php'</script>";
  22. }else { echo"<script language='JavaScript' type='text/JavaScript'> location.href='../html/autentica_clave.html'</script>";
  23.     }
  24. }
  25. else { echo"<script language='JavaScript' type='text/JavaScript'> location.href='../html/autentica_clave.html'</script>";
  26. }
  27.    
  28. ?>

lo tengo asi. quiero conectar a la bd y luego selecciono la tabla. estoy algo enredado estoy acostumbrado a trabajar con mysql y no se si es la forma correcta en postgresql de hacer la coneccion a la bd y luego a la tabla.
  #9 (permalink)  
Antiguo 04/07/2014, 12:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problemas de conexión a la bd con postgresql

Buenas...

Perdoname pero donde quedo esta indicacion en tu codigo ?

Cita:
error_reporting(-1);
Te digo otro error que veo:

Código SQL:
Ver original
  1. WHERE INDICADOR

debe ser

Código SQL:
Ver original
  1. WHERE \"tu_schema\".\"INDICADOR\"

y ojo que es CASE-SENSITIVE !
__________________
Salu2!
  #10 (permalink)  
Antiguo 04/07/2014, 12:53
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: problemas de conexión a la bd con postgresql

Hola ya realice los cambios. pero nada.
  #11 (permalink)  
Antiguo 04/07/2014, 13:13
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problemas de conexión a la bd con postgresql

Te das cuenta que tienes un bloque if(){} que abarca todo tu script ?

Sino se cumple.... veras en blanco ... pero ademas JAMAS SE CUMPLE, asi en cambio si

Código PHP:
Ver original
  1. if ( !empty ($_POST['indicador']) && && !empty ($_POST['clave']))
  2. {
  3. ..
  4. }else
  5.     echo "No llegaron datos";  // para debug


empty() cubre el caso de !isset() ... asi que estas pidiengo algo imposible:


Código Teoria de conjuntos:
Ver original
  1. A && !A = CONJUNTO VACIO

y por tanto..

Código Teoria de conjuntos:
Ver original
  1. isset(A) && !isset(A) = CONJUNTO VACIO
__________________
Salu2!

Última edición por Italico76; 04/07/2014 a las 14:49

Etiquetas: bd, postgresql
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 05:14.