Napisałem sobie klasę do obsługi IP banowanie, odbanowanie, wylistowanie wszystkich i jednego wybranego.
Klasa wygląda tak:
<?php
class IP{
protected $_db;
public function __construct(DB $db)
{
$this->_db=$db;
}
/**
* Add new IP
* @param string $ip
* @throws Exception
*/
public function add($ip)
{
$result=$this->_db->prepare("INSERT INTO zbanowanie VALUES('',:ip)");
$result->bindParam(':ip', $ip, PDO::PARAM_STR);
if(!$result->execute()){
throw new Exception('IP nie zostało zbanowane!');
}
}
/**
* Unlock IP
* @param string $ip
* @throws Exception
*/
public function unlock($ip)
{
$result=$this->_db->prepare("DELETE FROM zbanowane WHERE ip=:ip");
$result->bindParam(':ip', $ip, PDO::PARAM_STR);
if(!$result->execute()){
throw new Exception('IP nie zostało odbanowane!');
}
}
/**
* Show all blocked IP
* @throws Exception
*/
public function showAll()
{
$result=$this->db->prepare("SELECT * FROM zbanowane");
if(!$result->execute())
{
throw new Exception("Wystąpił bląd podczas pobierania listy IP!");
}else{
$wynik=$result->fetch(PDO::FETCH_ASSOC);
return $wynik;
}
}
/**
* Show selected IP
* @param int $id
*/
public function showOne($id)
{
$result=$this->db->prepare("SELECT ip FROM zbanowane WHERE id=:id limit 1");
$result->bindParam(':id',$id, PDO::PARAM_INT);
if(!$result->execute())
{
throw new Exception("Wystąpił bląd podczas pobierania zbanowanego IP!");
}else{
$wynik=$result->fetch(PDO::FETCH_ASSOC);
return $wynik;
}
}
}
Chodzi mi o metody showAll() i showOne() czy jest jakiś sposób, aby zrobić jedną uniwersalną metodę do pobrania jednego, jak i wszystkich IP. Czy jedyny sposób to taki jaki zastosowałem?
Ten post edytował ExPlOiT 24.07.2011, 15:47:45