Exemple
Manager.class.php
class Manager
{
protected $link;
private $table;
private $object;
public function __construct($link, $table, $object)
{
$this->link = $link;
$this->table = $table;
$this->object = $object;
}
public function delete($id)
{
$request = "DELETE FROM ".$this->table." WHERE id='".intval($id)."'";
mysqli_query($this->link, $request);
}
public function select($id)
{
$request = "SELECT * FROM ".$this->table." WHERE id='".intval($id)."'";
$res = mysqli_query($this->link, $request);
$object = mysqli_fetch_object($res, $this->object, array($this->link));
return $object;
}
public function selectAll()
{
$request = "SELECT * FROM ".$this->table."";
$res = mysqli_query($this->link, $request);
$resultat = array();
while ($object = mysqli_fetch_object($res, $this->object, array($this->link)))
{
$resultat[] = $object;
}
return $resultat;
}
}
UserManager.class.php
class UserManager extends Manager
{
public function __construct($link)
{
parent::__construct($link, 'user', 'User');
}
public function create($login, $password, $email, $date)
{
$user = new User($this->link);
$user->setLogin($login);
$user->setPassword($password);
$user->setEmail($email);
$user->setDate($date);
$login = mysqli_real_escape_string($this->link, $user->getLogin());
$password = mysqli_real_escape_string($this->link, $user->getPassword());
$email = mysqli_real_escape_string($this->link, $user->getEmail());
$date = mysqli_real_escape_string($this->link, $user->getDate());
$request = "INSERT INTO user (login, password, email, date) ";
$request .= "VALUES('".$login."', '".$password."', '".$email."', '".$date."')";
mysqli_query($this->link, $request);
if ($res)
return $this->select(mysqli_insert_id($this->link));
else
throw new Exception("Internal server error");
}
public function update($user)
{
$login = mysqli_real_escape_string($this->link, $user->getLogin());
$password = mysqli_real_escape_string($this->link, $user->getPassword());
$email = mysqli_real_escape_string($this->link, $user->getEmail());
$date = mysqli_real_escape_string($this->link, $user->getDate());
$request = "UPDATE user SET ";
$request .= "login='".$login."', ";
$request .= "password='".$password."', ";
$request .= "email='".$email."', ";
$request .= "date='".$date."' ";
$request .= "WHERE id='".$user->getId()."'";
mysqli_query($this->link, $request);
}
public function selectByLogin($login)
{
$login = mysqli_real_escape_string($this->link, $login);
$request = "SELECT * FROM user WHERE login='".$login."'";
$res = mysqli_query($this->link, $request);
$user = mysqli_fetch_object($res, 'User', array($this->link));
return $user;
}
}
User.class.php
class User
{
private $id;
private $login;
private $password;
private $email;
private $date;
public function __construct($link)
{
}
public function getId()
{
return $this->id;
}
public function getLogin()
{
return $this->login;
}
public function getPassword()
{
return $this->password;
}
public function getEmail()
{
return $this->email;
}
public function getDate()
{
return $this->date;
}
public function setLogin($login)
{
$this->login = $login;
}
public function setPassword($password)
{
$this->password = $password;
}
public function setEmail($email)
{
$this->email = $email;
}
public function setDate($date)
{
$this->date = $date;
}
}