Cita: 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.
Bueno, la "programación defensiva" es fundamental para ahorrarte bastante tiempo.
Otras sugerencias con respecto al código:
Código PHP:
require_once('Mysql.php');
$usuario = new ServidorBaseDatos();
$usuario->consulta($consulta);
$sql = "SELECT idUsuario FROM Usuario WHERE nombre = 'Luis'";
$registro = $usuario->extraerRegistro();
$idUsuario = $registro["idUsuario"];
$actualizar = "UPDATE Usuario SET apellido = 'Tigre' WHERE idUsuario = '".$idUsuario."'";
$usuario->consulta($actualizar);
La información de conexión -en esta etapa- sería recomendable que la dejaras fija dentro de la clase Base de Datos (o como una constante). Si quieres cambiarla, define entonces atributos privados con valores por defecto y desde el constructor o con setter/getter permite cambiar los datos de conexión (si así decides que debería ser el diseño).
La siguiente etapa podría ser crear un archivo único de configuración con constantes y que la clase las incluya.
Posteriormente, podrías evolucionar a:
- Crear una clase genérica BaseDeDatos y una particular MySQL, si mañana necesitas PostreSQL solo crearás esta clase y tu sistema solo dependerá de la clase genérica
- Crear una clase "representante" para la persistencia, es decir, una clase UsuarioPresistente donde tenga las operaciones concretas (grabar, recuperar, etc) y que use la clase BaseDeDatos para hacer las operaciones de "bajo nivel" (insert, delete, etc). Así, tu clase Usuario -> UsuarioPersistente -> BaseDeDatos -> Mysql
- Finalmente, empezar a dividir tu sistema en capas, 3 al menos, donde todo esto último sería de la capa de persistencia, y tu clase de dominio Usuario se comunica con una clase "fachada" PersistenciaFachada.
- etc.
Hay un trecho -que no es complicado- que puedes recorrer e ir aprendiendo.
Cita: 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

En sí, sin importar qué uses a bajo nivel, es recomendable que tu sistema tenga una "capa de abstracción" propia. Es decir, es más seguro que tu sistema dependa de tu clase BaseDeDatos y que internamente uses sentencias de PHP, y si mañana cambias de sistema, por una clase de Pear o otro producto, tu sistema seguirá funcionado con el mínimo de cambio, ya que el "foco de cambio" está contenido en esa clase.
Cita: Gracias nuevamente Enrique por el salvavidas
De nada, a las órdenes.