Acabo de empezar a usar OOP PHP y encontré una pregunta. He creado una clase mysql genérico que me permite conectar a una base de datos y tiene algunas funciones para obtener los registros de una tabla:PHP OOP: cómo usar una clase MySQL genérica en otras clases
class mysql{
//some lines to connect, followed by:
public function get_record($sql)
{
$result = mysql_result(mysql_query($sql));
return $result;
//obiously it's a bit more advanced, but you get the picture.
}
}
A continuación, tengo una clase para obtener los detalles del usuario:
class user{
__construct($id)
{
$this->id = $id
}
public function get_username($id)
{
$username = get_record("SELECT name FROM users WHERE id = '".$this->id."'");
return $username;
}
}
Intenté esto, pero me salió el error de que no se conocía la función get_record. Lo resolví agregando $ mysql = new mysql(); a la clase de usuario.
Sin embargo, se siente bastante ineficiente tener que crear una instancia del objeto mysql para cada clase que usa mis métodos de base de datos (eso es prácticamente todos).
¿Hay alguna manera de hacer que la clase mysql y sus métodos sean accesibles para todas las demás clases, sin tener que llamar a la clase mysql en todos los métodos?
Por favor, no crear clases de MySQL. Hay demasiados de estos alrededor, incluso cuando PHP ya tiene algo incorporado. Se llama PDO (objetos de base de datos PHP). PDO es transferible a otros desarrolladores, mientras que tener que descubrir la clase MySQL de otra persona una y otra vez se siente bastante inútil. – kander