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>';
}
}
}
?>
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();
?>
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.