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

Importa el orden en que se declaran los objetos?

Estas en el tema de Importa el orden en que se declaran los objetos? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Qué tal amigos, bien, tengo lo siguiente: Código PHP: $obj1 =new  Clase_MySQL (); $obj1 -> query ( 'SELECT * FROM tbl_uno' ); $obj2 =new  Clase_MySQL ( 'xxx.xxx.x.x' , ...
  #1 (permalink)  
Antiguo 05/09/2008, 14:35
Avatar de memoo  
Fecha de Ingreso: marzo-2008
Mensajes: 89
Antigüedad: 16 años, 1 mes
Puntos: 1
Importa el orden en que se declaran los objetos?

Qué tal amigos, bien, tengo lo siguiente:

Código PHP:
$obj1=new Clase_MySQL();
$obj1->query('SELECT * FROM tbl_uno');

$obj2=new Clase_MySQL('xxx.xxx.x.x','puerto','usuario','pass','BD');
$obj2->query('SELECT * FROM tbl_dos'); 
Como pueden ver, tengo la clase para conectarme a mi servidor y BD, si lo pongo así funciona todo bien, en el primero me conecto sin parametros y en el segundo le mando parametros para que me conecte a una BD diferente, pero si por ejemplo primero instancío los dos objetos y después mando a llamar a la función query me marca la excepción de que la tabla tbl_dos no forma parte de la bd correspondiente al primer objeto.

Osea que es como si la segunda declaración del objeto estuviera reemplazando a la primera... la duda ahora es que si uso esos mismos objetos en el codigo si me funcionan!, no me explico por qué! Alguna teoría?

Saludos y gracias de antemano.
__________________
And how can't we win? When fools can be kings, don't waste your time, or time will waste you...
Knights Of Cydonia
MUSE ROCKS
  #2 (permalink)  
Antiguo 05/09/2008, 15:25
str
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Importa el orden en que se declaran los objetos?

Depende de como funcione tu clase, parece que internamente usan la misma conexión....

Normalmente el orden de las declaraciones de los objetos, no afecta, si los objetos son independientes. Parece que para tu clase, no lo son
  #3 (permalink)  
Antiguo 05/09/2008, 18:46
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Importa el orden en que se declaran los objetos?

Exacto, es lo que dice @str, por qué no publicas la clase?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #4 (permalink)  
Antiguo 08/09/2008, 11:15
Avatar de memoo  
Fecha de Ingreso: marzo-2008
Mensajes: 89
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Importa el orden en que se declaran los objetos?

Bueno, aquí está la parte de la clase que es la que corresponde.

No publico toda por que es mucho código :S

Saludos y espero que me den una pista :D

memo

Código PHP:
<?php
class Clase_MySQL
{
    private 
$mysqlServidor="xxx.xxx.xxx.xxx";
    private 
$mysqlUsuario="user";
    private 
$mysqlPassword="pass";
    private 
$mysqlBaseDatos="bd";
    private 
$mysqlPuerto=3306;
    private 
$conexion;
    private 
$query;
    private 
$mysqlarrayDatos;
    private 
$resultadoQuery;
    private 
$resultadoFila;
    
    public function 
__construct($servidor=""$puerto=""$usuario=""$password="",$baseDatos=""
    {
        try{

            if(
strlen ($servidor)    >0)    $this->mysqlServidor$servidor;
            if(
strlen ($puerto)        >0)    $this->mysqlServidor$servidor.":".$puerto;
            if(
strlen ($usuario)    >0$this->mysqlUsuario=  $usuario;
            if(
strlen ($password)    >0$this->mysqlPassword$password;
            if(
strlen ($baseDatos)    >0$this->mysqlBaseDatos=$baseDatos;

            
$this->conexion = @mysql_connect($this->mysqlServidor$this->mysqlUsuario$this->mysqlPassword);
            
            if ( !
$this->conexion ) {
                throw new 
Exception("Error: No se pudo conectar al servidor.\nDescripción detallada: " mysql_error());
            }
    
            
$this->seleccBD($this->mysqlBaseDatos);
        }
        catch (
Exception $e) {
            echo 
"Excepción atrapada: ",$e;
        }
    }

    public function 
__destruct()
    {
        
        if ( 
is_resource($this->resultadoQuery) ) {
            
mysql_free_result($this->resultadoQuery);
        }
    }
    public function 
seleccBD($baseDatos)
    {
        try{
            
/*----------------------------------
            Assigning Databse name to class property
            -----------------------------------*/
            
$this->mysqlBaseDatos=$baseDatos;
            
/*----------------------------------
            Selecciona la base de datos
            -----------------------------------*/        
            
if(!@mysql_select_db($this->mysqlBaseDatos,$this->conexion)){
                throw new 
Exception("Error: No se pudo seleccionar la Base de Datos.\nDescripción detallada: " mysql_error());
            }
        }
        catch (
Exception $e) {
            echo 
"Excepción atrapada: ",$e;
        }
    }

    public function 
query($query)
    {
        try{    
            if(!
$this->resultadoQuery=@mysql_query($query,$this->conexion)){
                throw new 
Exception("Error: No se pudo ejecutar correctamente la consulta.\nDescripción detallada: " mysql_error());
                return 
false;
            }
            else
                return 
true;
        }
        catch (
Exception $e) {
            echo 
"Excepción atrapada: ",$e;
        }
        
    }
}
?>
__________________
And how can't we win? When fools can be kings, don't waste your time, or time will waste you...
Knights Of Cydonia
MUSE ROCKS
  #5 (permalink)  
Antiguo 08/09/2008, 11:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Importa el orden en que se declaran los objetos?

Cita:
Iniciado por memoo Ver Mensaje
Osea que es como si la segunda declaración del objeto estuviera reemplazando a la primera... la duda ahora es que si uso esos mismos objetos en el codigo si me funcionan!, no me explico por qué! Alguna teoría?
A que te refieres? que con el código que expusiste si funciona pero con otro código no? Como es que los estas manejando?

Saludos.
  #6 (permalink)  
Antiguo 08/09/2008, 13:50
Avatar de memoo  
Fecha de Ingreso: marzo-2008
Mensajes: 89
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Importa el orden en que se declaran los objetos?

Cita:
Iniciado por GatorV Ver Mensaje
A que te refieres? que con el código que expusiste si funciona pero con otro código no? Como es que los estas manejando?

Saludos.
No osea, si primero unicamente creo los objetos y después quiero usarlos se confunde uno con el otro.
Sin embargo si primero creo uno y lo utilizo, y después creo el otro y lo utilizo si funciona, y así siguen funcionando en todo el código.

La diferencia es que si primero los creo y después quiero usarlos no funcionan, y si primero creo uno y en seguida lo uso, si funciona, y siguen funcionales en todoe el codigo :S

no se si me explico :S

Saludos
__________________
And how can't we win? When fools can be kings, don't waste your time, or time will waste you...
Knights Of Cydonia
MUSE ROCKS
  #7 (permalink)  
Antiguo 08/09/2008, 14:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Importa el orden en que se declaran los objetos?

Lo que quieres decir es que esto no funciona:
Código PHP:
$obj1=new Clase_MySQL();
$obj2=new Clase_MySQL('xxx.xxx.x.x','puerto','usuario','pass','BD');
$obj1->query('SELECT * FROM tbl_uno');
$obj2->query('SELECT * FROM tbl_dos'); 
Pero esto si:
Código PHP:
$obj1=new Clase_MySQL();
$obj1->query('SELECT * FROM tbl_uno');

$obj2=new Clase_MySQL('xxx.xxx.x.x','puerto','usuario','pass','BD');
$obj2->query('SELECT * FROM tbl_dos'); 
Mmm muy raro en teoria y viendo tu clase deberia de funcionar, y asi es como lo he utilizado y nunca me ha dado problema dado que las clases tengan sus parametros correctos (usuario y password para la bd).

Saludos.
  #8 (permalink)  
Antiguo 08/09/2008, 15:25
Avatar de memoo  
Fecha de Ingreso: marzo-2008
Mensajes: 89
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Importa el orden en que se declaran los objetos?

@GatorV, así es, de hecho a mi también se me hace bien raro, ya había usado antes POO con java, y me había funcionado tal cual, pero bueno, espero alguien más vea mi error y me corrija!!! :(

Saludos y cualquiera ayuda me serviría de mucho!
__________________
And how can't we win? When fools can be kings, don't waste your time, or time will waste you...
Knights Of Cydonia
MUSE ROCKS
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 10:37.