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

Boolean en PostgreSQL

Estas en el tema de Boolean en PostgreSQL en el foro de PostgreSQL en Foros del Web. Hola. Estaba trabajando con Oracle y tenía bien asumido que no podía hacer uso del tipo booleano en php cuando recuperase datos. Cuando empecé a ...
  #1 (permalink)  
Antiguo 13/03/2007, 07:42
Avatar de Pip
Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 280
Antigüedad: 20 años, 5 meses
Puntos: 0
Boolean en PostgreSQL

Hola.

Estaba trabajando con Oracle y tenía bien asumido que no podía hacer uso del tipo booleano en php cuando recuperase datos. Cuando empecé a ver postgreSQL me alegré de reencontrarme con este tipo tan práctico. Sin embargo, mi decepción no tardó en llegar, ya que cuando recuperaba una variable y la trataba como si fuera bool, no se comportaba de manera correcta. Es decir, teniendo en la variable $var_campo un campo de una tupla cuyo tipo es booleano y su valor es true, si escribo:

Código PHP:
if ($var_campo) echo "Entra aquí";
else echo 
"No es cierto"
Funciona de manera casi arbitraria, si quiero que se comporte acorde al valor de la variable, he de tratarla como si fuera de tipo caracter:


Código PHP:
if ($var_campo=='t') echo "Entra aquí";
else echo 
"No es cierto"
Esto me parece un apaño de postgreSQL, ¿Es así sin más o me equivoco en algo?
__________________
por Pip
  #2 (permalink)  
Antiguo 13/03/2007, 20:18
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Boolean en PostgreSQL

Hola, el problema que tienes no es del postgres , es de el conector entrre php y postgres.
el cual no hace la conversión, Yo tengo una funcion que me traduce el dato despues de consultarlo, Pero la verdad ya me acostumbre a trabajarlo como texto. adicional a que cuando haces insert, debes ded convertirlo primero.

Si alguien, ha encontrado una solución, me la cuenta.
  #3 (permalink)  
Antiguo 14/03/2007, 02:39
Avatar de Pip
Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 280
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Boolean en PostgreSQL

No estoy tan seguro de que el error sea bidireccional calvin_naranjo.

Me baso en que tengo un script de introducción de datos en sql para cargar la base de datos con unos cuantos datos de prueba y cuando hago:

Código PHP:
INSERT INTO MI_TABLA VALUES (0,FALSE,TRUE,FALSE,TRUE); 
Si miro desde el propio cliente de potgreSQL el contenido de esa tabla veo que es:

Código PHP:
cod_paciente      campo1         campo2          campo3         campo4
0                 f              t               f              t 
Con lo cual los datos se han introducido correctamente. Al menos en mi caso, el fallo tiene lugar cuando postgreSQL le pasa los datos a php.
__________________
por Pip

Última edición por Pip; 14/03/2007 a las 02:42 Razón: porque no había probado que me inserte bien tanto true como false en el mismo INSERT y ya sí
  #4 (permalink)  
Antiguo 14/03/2007, 08:11
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Boolean en PostgreSQL

Estimado Pip, la forma en que el SGBDR Postgresql trate un tipo de dato, no significa que sea una fallo...

Tu le dices que es falso o verdadero, y él lo entiende... podrías probar, por ejemplo:

select * from TU_TABLA where TU_CAMPO is true;

para que veas el resultado...

De ahí, a que tú quieras manipular e interpretar con otro lenguaje, es otra cosa...

Pendientes
__________________
Gracias de todas todas
-----
Linux!
  #5 (permalink)  
Antiguo 14/03/2007, 14:09
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Boolean en PostgreSQL

Listo Pip.

Me voy a explicar, Cuando obtengo el dato desde la base de datos, el viene texto (cierto?), ahora hago lo que tengo que hacecr con el dato y cuando lo voy a grabar, debo de reemplazr el texto por el valor booleano, esto es debido a que postgrges entrega un dato de tipo boolean, pero el conector entre postgres y php, le entrega a php un dato tipo cadena.

La verdad esto no soluciona tu problema, seria bueno colocar está sugerencia en el proyecto de desarrollo de conectores entrte php y postgres.......

En JAVA esto no sucede, en JAVA el dato se conserva como boolean.
  #6 (permalink)  
Antiguo 14/03/2007, 16:45
Avatar de Pip
Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 280
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Boolean en PostgreSQL

Ciertamente tenéis razón. Así que he tenido mala suerte de que este tema no esté demasiado perfeccionado entre postgreSQL y php.

Esperemos que más adelante lo mejoren.
__________________
por Pip
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 08:58.