Foros del Web » Programando para Internet » PHP »

PHP OO problema con pg_query

Estas en el tema de problema con pg_query en el foro de PHP en Foros del Web. buenos dias, por favor disculpen que recurra tanto al foro, pero es que primero, soy novato en la programacion y segundo aunque intento y bastante, ...
  #1 (permalink)  
Antiguo 04/06/2013, 08:37
 
Fecha de Ingreso: mayo-2013
Ubicación: cali
Mensajes: 58
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta problema con pg_query

buenos dias, por favor disculpen que recurra tanto al foro, pero es que primero, soy novato en la programacion y segundo aunque intento y bastante, muchas veces no encuentro la solucion a mis problemas (o por lo menos a los mas especificos) en google

BUENO AL GRANO:

mi problema es el siguiente, tengo una clase madre la cual contiene los datos de la conexion a una base de datos la cual es esta(NOTA ya estan hechas las respectivas instancias, pero las considero irrelevantes para este post por lo cual no las coloco):

class Conexiones
{
public $cadena;
public $cadena2;
protected $con;
protected $con2;

public function __construct($cad1,$cad2)
{
$this->cadena=$cad1;
$this->cadena2=$cad2;
}


public function conex1()
{
$con=pg_connect($this->cadena) or die("Error brutal". pg_last_error());
return $con;
}

Y a continuación, tengo una clase hija, la cual es donde estoy realizando una consulta, la cual la recorro en un arreglo asociativo (igual que arriba, considero irrelevante para este caso colocar en este post las instancias, debido a que ya las hice en mi script):

class Pacientes extends Conexiones
{

public $sql_cosmitet;
public $objeto;


public function __construct($sql_cosmitet)
{
$this->sql_cosmitet=$sql_cosmitet;
}

public function buscarpacientes()
{

$this->objeto=pg_query($this->sql_cosmitet,$this->con2);

}
public function ingresarpacientes()
{

while($this->reg_cosmi=pg_fetch_assoc($this->objeto))
{
...........

}
}
}

(aqui irian las instancias y los llamados a los metodos)

el problema es que en la linea del pg_query me sale el siguiente error:

Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource

y en la linea del pg_fetch_assoc el siguiente error:

Warning: pg_fetch_assoc() expects parameter 1 to be resource, boolean given

en lo que investigue en internet, descubri que para que pg_query admita ese artributo, hay que convertirlo en global, lo intente pero no lo consegui, pero eso me da unos interrogantes:

1. si estoy utilizando herencias, ¿por que debo convertir el atributo en global?, si para eso se supone que es la herencia, para que la clase hija erede sus metodos y atributos

2. ¿el problema sera que, tanto pg_query como pg_fetch_assoc no admiten la palabra reservada $this?

3. si es verdad que hay que volver los atributos globales ¿como lo aria en ese caso?

MUCHAS GRACIAS DE ANTEMANO A USTEDES
  #2 (permalink)  
Antiguo 04/06/2013, 10:08
 
Fecha de Ingreso: mayo-2013
Ubicación: cali
Mensajes: 58
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: problema con pg_query

por favor.... disculpen que sea largo es que no puedo especificarlo mejor y no puedo encontrar la solucion a este problema y de verdad lo necesito asi que por favor ayuda

muchas gracias al alma caritativa que me pueda ayudar
  #3 (permalink)  
Antiguo 04/06/2013, 10:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problema con pg_query

El problema no tiene nada que ver con pg_ si no como diseñaste tu clase, cuando heredas una clase de otra, y sobreescribes el constructor, la clase padre ya no tiene lo necesario para construirse.

Aparte de que es un mal diseño heredar por heredar (lee el principio de Liskov), lo que tienes que hacer es leer sobre DAO, y no heredes tu clase solo por heredar ya que al sobreescribir el constructor tu clase no se comporta de la manera que lo esperas.

Saludos.
  #4 (permalink)  
Antiguo 04/06/2013, 10:44
 
Fecha de Ingreso: mayo-2013
Ubicación: cali
Mensajes: 58
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: problema con pg_query

ola, gracias por responde mi mensaje, pero el problema es que si quito el constructor y lo reemplazo por otro metodo que inicialice el sql, me empieza a salir otro error muy diferente que dice:

Warning : Missing argument 2 de Conexiones :: __construct (), llamado en C: \ xampp \ htdocs \ autopg \ pacientes.php en la línea 83 y se definen en C: \ xampp \ htdocs \ autopg \ pacientes.php on line 9

de verdad, disculpa que pregunte tanto, pero es que soy muy novato en la programacion orientada a objetos

muchas gracias por lo que me puiedas ayudar
  #5 (permalink)  
Antiguo 04/06/2013, 13:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problema con pg_query

Pues es que es por lo mismo, en la clase padre estas diciendo que el constructor necesita 2 argumentos así es el diseño de tu clase.

Como te digo lo que haces es la forma incorrecta, lee y aprende sobre el Principio de Liskov para que veas porque NO debes de heredar por heredar.

Saludos.

Etiquetas: conexion, query
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 17:42.