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

PHP OO Problema con herencias entre clases

Estas en el tema de Problema con herencias entre clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. tengo estas dos clases: UnaClase.php Código PHP: <?php class  conexiones  {     private  $servidor  =  "" ;     private  $basededatos  =  "" ;      // para realizar insersiones a la base de datos      private  ...
  #1 (permalink)  
Antiguo 20/11/2010, 19:01
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Problema con herencias entre clases

tengo estas dos clases:

UnaClase.php
Código PHP:

<?php
class conexiones 
{
    private 
$servidor "";
    private 
$basededatos "";
    
// para realizar insersiones a la base de datos
    
private $usuario_insersiones "";
    private 
$contrasena_insersiones "";

// Esta funcion se encarga de realizar conexion a la base de datos con el usuario y contraseña de insercion nada mas
public function con_insersion ()
    {
        global 
$conexion;
        
$conexion mysql_connect($this->servidor$this->usuario_insersiones$this->contrasena_insersiones);
        
mysql_select_db($this->basededatos$conexion);    
        
//echo $conexion;
    
}
?>
OtraClase.php
Código PHP:

<?php include("clase_conexiones.php"); ?>
<?php
class clsTblAcceso extends conexiones
{
    public 
$acc_correo;
    public 
$acc_seudonimo;
    public 
$acc_contrasena;
    private 
$id_roll;
    private 
$acc_confirmado 0;
    private 
$acc_estado 1;
    private 
$acc_estado_correo 1;
    private 
$conectar;

public function 
insertar ()
    {
        
parent::con_insersion();
        
$insertar "INSERT INTO tbl_acceso (acc_correo, acc_seudonimo, acc_contrasena, id_roll, acc_confirmado, acc_estado, acc_estado_correo) VALUES ($acc_correo, $acc_seudonimo, $acc_contrasena, $id_roll, $acc_confirmado, $acc_estado, $acc_estado_correo)";
        
$ejecutar mysql_query($insertar$conexion);

    }
}
?>
pero me sale este error
Cita:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in pagina.php on line 18
Creo que el problema esta en llamar la variable $conexion que se encuentra en la clase PADRE pero no se como hacer para que esto me funcione.

Gracias por la ayuda
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 20/11/2010, 19:15
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: Problema con herencias entre clases

pues creo que debes depurar tu consulta para que indiques cual es el error que te dice mysql ej
Código PHP:
Ver original
  1. $ejecutar = mysql_query($insertar, $conexion) or die (mysql_error());
has esto y nos indicas el error
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 20/11/2010, 19:16
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 122
Respuesta: Problema con herencias entre clases

mmmm pues tendrias que tener el operador "global" en la funcion insertar de la clase derivada:
Código PHP:
Ver original
  1. public function insertar ()
  2.     {
  3.         global $conexion;
  4.        
  5.         parent::con_insersion();
  6.  
  7.         $insertar = "INSERT INTO tbl_acceso (acc_correo, acc_seudonimo, acc_contrasena, id_roll, acc_confirmado, acc_estado, acc_estado_correo) VALUES ($acc_correo, $acc_seudonimo, $acc_contrasena, $id_roll, $acc_confirmado, $acc_estado, $acc_estado_correo)";
  8.        
  9.         $ejecutar = mysql_query($insertar, $conexion);
  10.  
  11.     }

Aunque no veo el punto en realidad de hacer una variable global para la conexion? por que no una variable "protected" que se herede? o si tanto necesitas la variable global (por lo que quieras) pues creo que seria mejor hacer algo asi:
Código PHP:
Ver original
  1. <?php
  2.  
  3. class conexiones  
  4. {
  5.     private $servidor = "localhost";
  6.     private $basededatos = "habitatweb";
  7.     // para realizar insersiones a la base de datos
  8.     private $usuario_insersiones = "root";
  9.     private $contrasena_insersiones = "";
  10.     protected $conexion;
  11.    
  12.     public function __construct() {
  13.         global $conexion;
  14.        
  15.         // Aqui guardas la referencia a la variable global
  16.         $this->conexion = &$conexion;
  17.     }
  18.    
  19.     // Esta funcion se encarga de realizar conexion a la base de datos con el usuario y contraseña de insercion nada mas
  20.     public function con_insersion ()
  21.     {
  22.         $this->conexion = mysql_connect($this->servidor, $this->usuario_insersiones, $this->contrasena_insersiones);
  23.         mysql_select_db($this->basededatos, $this->conexion);    
  24.     }
  25. }
  26.  
  27. class clsTblAcceso extends conexiones
  28. {
  29.     public $acc_correo;
  30.     public $acc_seudonimo;
  31.     public $acc_contrasena;
  32.     private $id_roll;
  33.     private $acc_confirmado = 0;
  34.     private $acc_estado = 1;
  35.     private $acc_estado_correo = 1;
  36.     private $conectar;
  37.    
  38.     public function insertar ()
  39.     {      
  40.         parent::con_insersion();
  41.        
  42.         $insertar = "INSERT INTO tbl_acceso (acc_correo, acc_seudonimo, acc_contrasena, id_roll, acc_confirmado, acc_estado, acc_estado_correo) VALUES ($acc_correo, $acc_seudonimo, $acc_contrasena, $id_roll, $acc_confirmado, $acc_estado, $acc_estado_correo)";
  43.        
  44.         $ejecutar = mysql_query($insertar, $this->conexion);
  45.     }
  46. }
  #4 (permalink)  
Antiguo 20/11/2010, 20:14
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Problema con herencias entre clases

Muchas gracias por la ayuda. esta perfecto.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 20/11/2010, 21:46
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
Tema movido desde PHP a Frameworks y PHP orientado a objetos

Etiquetas: clases
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 09:11.