Foros del Web » Programando para Internet » PHP »

hola esta clase basica, de mysql tiene un error

Estas en el tema de hola esta clase basica, de mysql tiene un error en el foro de PHP en Foros del Web. hola una pregunta , tengo una clase, para una conexion mysql, es un ABM,, no la hice funcionar.. para ver si tira errores o no.. ...
  #1 (permalink)  
Antiguo 07/03/2013, 13:52
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 1 mes
Puntos: 3
hola esta clase basica, de mysql tiene un error

hola una pregunta , tengo una clase, para una conexion mysql, es un ABM,,
no la hice funcionar.. para ver si tira errores o no..
pero por lo que veo falta algo (o tal vez no )... ,
la clase tiene metodos, una de ellas es conectarse a myqsl, con mysql_connect... pero veo que no esta como construct_....

quiero decir que al momento de instaciar un objeto, tiene si o si, llamar al metodo "Conexion" para conectarse a la base de datos... o me equivoco??


aca esta el codigo.


Código PHP:
<?php
class Conexion  // se declara una clase para hacer la conexion con la base de datos
{
    var 
$con;   //  aca se almacera la conexion con la seleccion de la base de datos
    
function Conexion()
                
    {
        
// se definen los datos del servidor de base de datos 
        
$conection['server']="localhost";  //host
        
$conection['user']="root";         //  usuario
        
$conection['pass']="";        //password
        
$conection['base']="abm";            //base de datos
        
        
        // crea la conexion pasandole el servidor , usuario y clave
        
$conectmysql_pconnect($conection['server'],$conection['user'],$conection['pass']);


            
        if (
$conect// si la conexion fue exitosa , selecciona la base
        
{
            
mysql_select_db($conection['base']);            
            
$this->con=$conect;
        }
    }
    function 
getConexion() // devuelve la conexion
    
{
        return 
$this->con;
    }
    function 
Close()  // cierra la conexion
    
{
        
mysql_close($this->con);
    }    

}




class 
sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{

    var 
$pconeccion;
    var 
$pconsulta;
    var 
$resultados;
    function 
sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
    
{
        
$this->pconeccion= new Conexion();
    }
    function 
executeQuery($cons)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
    
{
        
$this->pconsultamysql_query($cons,$this->pconeccion->getConexion());
        return 
$this->pconsulta;
    }    
    function 
getResults()   // retorna la consulta en forma de result.  mmmmm
    
{return $this->pconsulta;}    
    
    function 
Close()        // cierra la conexion
    
{$this->pconeccion->Close();}    
    
    function 
Clean() // libera la consulta
    
{mysql_free_result($this->pconsulta);}
    
    function 
getResultados() // debuelve la cantidad de registros encontrados
    
{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
    
    function 
getAffect() // devuelve las cantidad de filas afectadas
    
{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}




class 
Cliente
{
    var 
$nombre;     //se declaran los atributos de la clase, que son los atributos del cliente
    
var $apellido;
    var 
$fecha;
    Var 
$peso;
    Var 
$id;
    function 
Cliente($nro=0// declara el constructor, si trae el numero de cliente lo busca , si no, trae todos los clientes
    
{
        if (
$nro!=0)
        {
            
$obj_cliente=new sQuery();
            
$result=$obj_cliente->executeQuery("select * from clientes where id = $nro"); // ejecuta la consulta para traer al cliente 
            
$row=mysql_fetch_array($result);
            
$this->id=$row['id'];
            
$this->nombre=$row['nombre'];
            
$this->apellido=$row['apellido'];
            
$this->fecha=$row['fecha_nac'];
            
$this->peso=$row['peso'];
        }
    }
    function 
getClientes() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes 
        
{
            
$obj_cliente=new sQuery();
            
$result=$obj_cliente->executeQuery("select * from clientes"); // ejecuta la consulta para traer al cliente 
            
return $result// retorna todos los clientes
        
}
        
        
// metodos que devuelven valores
    
function getID()
     { return 
$this->id;}
    function 
getNombre()
     { return 
$this->nombre;}
    function 
getApellido()
     { return 
$this->apellido;}
    function 
getFecha()
     { return 
$this->fecha;}
    function 
getPeso()
     { return 
$this->peso;}
     
        
// metodos que setean los valores
    
function setNombre($val)
     { 
$this->nombre=$val;}
    function 
setApellido($val)
     {  
$this->apellido=$val;}
    function 
setFecha($val)
     {  
$this->fecha=$val;}
    function 
setPeso($val)
     {  
$this->peso=$val;}

    function 
updateCliente()    // actualiza el cliente cargado en los atributos
    
{
            
$obj_cliente=new sQuery();
            
$query="update clientes set nombre='$this->nombre', apellido='$this->apellido',fecha_nac='$this->fecha',peso='$this->peso' where id = $this->id";
            
$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
            
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
    
    
}
    function 
insertCliente()    // inserta el cliente cargado en los atributos
    
{
            
$obj_cliente=new sQuery();
            
$query="insert into clientes( nombre, apellido, fecha_nac,peso)values('$this->nombre', '$this->apellido','$this->fecha','$this->peso')";
            
            
$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
            
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
    
    
}    
    function 
deleteCliente($val)    // elimina el cliente
    
{
            
$obj_cliente=new sQuery();
            
$query="delete from clientes where id=$val";
            
$obj_cliente->executeQuery($query); // ejecuta la consulta para  borrar el cliente
            
return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
    
    
}    
    
}


?>

en la linea 2, esta la clase conexion ,
en la linea 5 esta el metodo conexion,
en la linea 48 creo una instancia de la clase conexion,,
$this->pconeccion= new Conexion();


pero en ningun momento llamo al metodo para realizar la conexion... si estaria como construct seria distinto, .. pero no....


despues tengo otro archivo que es formulario, y php, pero no se llama al metodo "conexion"
  #2 (permalink)  
Antiguo 07/03/2013, 14:19
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 1 mes
Puntos: 3
Respuesta: hola esta clase basica, de mysql tiene un error

No me digan que cuando un metodo se llama igual que su clase, este pasa a ser su constructor??....
  #3 (permalink)  
Antiguo 08/03/2013, 10:36
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: hola esta clase basica, de mysql tiene un error

Pues sí te digo, ese es el comportamiento anterior (en PHP4) que el constructor se llame igual, en PHP5 es ahora __construct() pero por "retrocompatibilidad" también se usa la misma función como constructor.

Saludos.

Etiquetas: clase, formulario, mysql, registro, resultados, select, sql
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:02.