Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/07/2008, 23:14
Wenaptic
 
Fecha de Ingreso: julio-2008
Ubicación: Maldonado
Mensajes: 27
Antigüedad: 18 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Error con mysql_fetch_array?

Al fin!!! lo pude solucionar, a parte de las fe de erratas que me mande al transcribir la clase al post, enumero las correcciones:
1 - la variable fila estaba mal instanciada (pensamiento procedural), gracias Enrique!
cambie $fila por $this->registro
2 - agregue "or die ($Sql.mysql_error()."");" al metodo consulta para detallar el tipo de error, quedando en evidencia que el error esta en la consulta SQL.
Ahora dejo la clase y el ejemplo de uso, por si alguien le interesa:
mysql.class.php
Código PHP:
<?php
class ServidorBaseDatos
{
    private 
$servidor;
    private 
$usuario;
    private 
$pass;
    private 
$baseDatos;
    private 
$consulta;
    private 
$resultado;
    private 
$registro;

    function 
__construct($servidor, $usuario, $pass, $baseDatos)
    {
        
$this->servidor = $servidor;
        
$this->usuario = $usuario;
        
$this->pass = $pass;
        
$this->baseDatos = $baseDatos;
        
$this->conectarBaseDatos();
    }
    private function 
conectarBaseDatos()
    {
        
$this->descriptor = mysql_connect($this->servidor, $this->usuario, $this->pass);
        
mysql_select_db($this->baseDatos, $this->descriptor);
    }
    public function 
consulta($consulta)
    {
        
$this->resultado = mysql_query($consulta, $this->descriptor) or die ($Sql.mysql_error()."");
    }
    public function 
extraerRegistro()
    {
        
$this->registro = mysql_fetch_array($this->resultado, MYSQL_ASSOC);
        
    }
    public function 
numeroFilas()
    {
        return 
mysql_num_rows($this->resultado);
    }
    public function 
numeroColumnas()
    {
        return 
mysql_num_fields($this->descriptor);
    }
    public function 
filasAfectadas()
    {
        return 
mysql_affected_rows($this->descriptor);
    }
    public function 
ultimaFila()
    {
        return 
mysql_insert_id($this->descriptor);
    }
}
?>
Ejemplo:
Código PHP:
<?php
require_once("mysql.class.php");
$servidor = "localhost";
$usuario = "root";
$pass = "m4k8ts";
$baseDatos = "Compras";
$consulta = "SELECT idUsuario FROM Usuario WHERE nombre = 'Luis'";
$usuario = new ServidorBaseDatos($servidor, $usuario, $pass, $baseDatos);
$usuario->consulta($consulta);
$registro = $usuario->extraerRegistro();
$idUsuario = $registro["idUsuario"];
$actualizar = "UPDATE Usuario SET apellido = 'Tigre' WHERE idUsuario = '".$idUsuario."'";
$usuario->consulta($actualizar);
?>
Autocontestacion:
En cuanto a la opinion sobre PEAR DB y mysqli...
El primero esta obsoleto segun la documentacion de PEAR, hay un nuevo modulo que ocupa su lugar y mysqli hace lo mismo que mi clase y mas, seguramente use esta extension en un futuro cercano, mañana

Gracias nuevamente Enrique por el salvavidas

Última edición por Wenaptic; 20/07/2008 a las 23:53