Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/07/2008, 23:14
Wenaptic
 
Fecha de Ingreso: julio-2008
Ubicación: Maldonado
Mensajes: 27
Antigüedad: 16 años, 7 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->resultadoMYSQL_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