He empezado a meterme con la POO y después de leer manuales he realizado mi primer código que lo "único" que hace es listar la tabla de usuarios y me han surgido las primeras dudas.
He creado dos clases. La primera conexión que hace la conexion, ejecutar, limpiar y cierra.
Código PHP:
class conexion
{
private $servidor;
private $usuario;
private $password;
private $bd;
private $database;
public function __construct($servidor= "localhost", $usuario = "root", $password = "", $bd = "abm")
{
$this->servidor=$servidor;
$this->usuario=$usuario;
$this->password=$password;
$this->bd=$bd;
$this->database = new mysqli($servidor, $usuario, $password, $bd);
if ($this->database->connect_error) {
die("Error (" . $this->database->connect_errno . ") ". $this->database->connect_error);
}
}
public function ejecutar($sql) // ejecuta consulta
{
return mysqli_query($this->database,$sql);
}
public function limpiar() // libera la consulta
{
mysql_free_result($this->database);
}
public function cerrar() // cierra la conexion
{
$this->database->Close();
}
}
Código PHP:
class usuario extends conexion
{
public function __construct()
{
parent::__construct();
}
public function listar()
{
$sql="select * from clientes";
$result=parent::ejecutar($sql);
return $result;
parent::limpiar();
}
}
Código PHP:
$cliente=new usuario();
$result=$cliente->listar();
if($result) {
echo $result->num_rows."<br />";
if ($result->num_rows!=0)
{
while ($rowCam = $result->fetch_row())
{
echo $rowCam[1]."<br />";
}
}
}
else
echo "Error SQL";
$cliente->cerrar();
Y una duda que me ha surgido. Si creo en esta misma página otra clase que hereda de conexion se me abriria dos conexiones en la misma página (la nueva y la de usuario). Es mejor tener la clases que no hereden de conexion o como es la forma más obtima de hacerlo.
Muchas gracias de antemano