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

Empezando con clases -> problema

Estas en el tema de Empezando con clases -> problema en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, estoy iniciándome en las clases, y después de un primer vistazo a la documentación me he lanzado al ruedo. He escrito una ...
  #1 (permalink)  
Antiguo 15/01/2007, 17:48
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 18 años, 9 meses
Puntos: 1
Empezando con clases -> problema

Hola a todos,

estoy iniciándome en las clases, y después de un primer vistazo a la documentación me he lanzado al ruedo.

He escrito una clase para conectarme a MySQL, hacer una consulta, liberar memoria y desconectar. Me funciona todo menos la liberación de memoria.
Aquí está la clase. Sé que será 99% mejorable, no os pido que la depuréis, sólo quiero saber por qué no funciona mysql_free_result:
Código PHP:
<?php

class db_conexion {

    
/* Variables de conexion */
    
var $servidor;
    var 
$usuario;
    var 
$clave;
    var 
$db;
    
    
/* Identificador de conexion */
    
var $conexion_ID;
    
    
/* Identificador de consulta */
    
var $consulta_ID;
    
    
    
//Conexion
    
function conexion($server,$user,$pass,$database) {
    
        
$this->servidor $server;
        
$this->usuario $user;
        
$this->clave $pass;
        
$this->db $database;
        
         
$this->conexion_ID=mysql_connect($this->servidor,$this->usuario,$this->clave);
        
mysql_select_db($this->db,$this->conexion_ID);
            
            if (
$this->conexion_ID) {
                print 
'Conexión realizada con éxito<br>';
            } else {
                print 
'Cagon crom, algo ha fallado<br>';
            }
    }
    
    
//Consulta
    
function consulta($sql) {
    
        
$this->consulta_ID mysql_query($sql$this->conexion_ID);
            if(
$this->consulta_ID) {
                print 
'Consulta realizada con éxito<br>';
            } else {
                print 
'La has cagado<br>';
            }
        }
    
    
//mysql_num_rows
    
function num_rows() {
        
$filas=mysql_num_rows($this->consulta_ID);
        return(
$filas);
    }
    
    
//mysql_fetch_array
    
function fetch_array() {
        
mysql_fetch_array($this->consulta_ID);    
    }
    
    
//mysql_free_result
    
function free_result() {
        
mysql_free_result($this->consulta_ID);
    }
    
    
//Desconexion
    
function desconexion() {
        
$descon=mysql_close($this->conexion_ID);
            if(
$descon) {
                print 
'desconexión realizada con éxito<br>';
            } else {
                print 
'No se ha podido desconectar, algo estás haciendo mal, calamar<br>';
            }
    }

}

?>
Y así la utilizo:
Código PHP:
<?php
require("datos_conexion.inc.php");
require(
"conexion.inc.php");

$con = new db_conexion();
$con->conexion($servidor_,$usuario_,$clave_,$db_);
$con->consulta("SELECT v_check from t_checks");
    
    if(
$con->num_rows()!=0) {
        while(
$row=$con->fetch_array()) {
            print 
$row['v_check'] . '<br>';
        }
    }

$con->free_result();    
$con->desconexion();
?>
El error es: mysql_free_result(): supplied argument is not a valid MySQL result resource in...

Le he dado 20 vueltas y no averiguo qué puede ser lo que falla. Será cualquier pego que haya pasado por alto. Espero que podáis aclararme esta duda existencial.
Un saludo a todos.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #2 (permalink)  
Antiguo 15/01/2007, 18:06
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Empezando con clases -> problema

ese es error te lo marca por existe un error en el resultado a liberar, es decir no es un argumento valido de MySql lo que esta recibiendo la funcion mysql_free_result().

prueba checando que tu conexxion es correcta y que tu consulta sea correcta.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 16/01/2007, 05:30
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Empezando con clases -> problema

Gracias por responder.

No se trata de un error de conexión o consulta. Usando la clase el script imprime: Conexión realizada con éxito, consulta realizada con éxito, (contenido de la consulta separado por <br>), error con mysql_free_result y desconexión realizada con éxito.

Saludos.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
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 06:25.