Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Uniwersalne metody
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Napisałem sobie klasę do obsługi IP banowanie, odbanowanie, wylistowanie wszystkich i jednego wybranego.
Klasa wygląda tak:
  1. <?php
  2. class IP{
  3. protected $_db;
  4.  
  5. public function __construct(DB $db)
  6. {
  7. $this->_db=$db;
  8. }
  9.  
  10. /**
  11. * Add new IP
  12. * @param string $ip
  13. * @throws Exception
  14. */
  15. public function add($ip)
  16. {
  17. $result=$this->_db->prepare("INSERT INTO zbanowanie VALUES('',:ip)");
  18. $result->bindParam(':ip', $ip, PDO::PARAM_STR);
  19. if(!$result->execute()){
  20. throw new Exception('IP nie zostało zbanowane!');
  21. }
  22. }
  23.  
  24. /**
  25. * Unlock IP
  26. * @param string $ip
  27. * @throws Exception
  28. */
  29. public function unlock($ip)
  30. {
  31. $result=$this->_db->prepare("DELETE FROM zbanowane WHERE ip=:ip");
  32. $result->bindParam(':ip', $ip, PDO::PARAM_STR);
  33. if(!$result->execute()){
  34. throw new Exception('IP nie zostało odbanowane!');
  35. }
  36. }
  37.  
  38. /**
  39. * Show all blocked IP
  40. * @throws Exception
  41. */
  42. public function showAll()
  43. {
  44. $result=$this->db->prepare("SELECT * FROM zbanowane");
  45. if(!$result->execute())
  46. {
  47. throw new Exception("Wystąpił bląd podczas pobierania listy IP!");
  48. }else{
  49. $wynik=$result->fetch(PDO::FETCH_ASSOC);
  50. return $wynik;
  51. }
  52. }
  53.  
  54. /**
  55. * Show selected IP
  56. * @param int $id
  57. */
  58. public function showOne($id)
  59. {
  60. $result=$this->db->prepare("SELECT ip FROM zbanowane WHERE id=:id limit 1");
  61. $result->bindParam(':id',$id, PDO::PARAM_INT);
  62. if(!$result->execute())
  63. {
  64. throw new Exception("Wystąpił bląd podczas pobierania zbanowanego IP!");
  65. }else{
  66. $wynik=$result->fetch(PDO::FETCH_ASSOC);
  67. return $wynik;
  68. }
  69. }
  70. }


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
Go to the top of the page
+Quote Post
DiH
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

Ostrzeżenie: (0%)
-----


A czy nie możnaby tak?

  1. public function showIps()
  2. {
  3. $id = func_get_args(1);
  4.  
  5. if($id == null) {
  6. $result=$this->db->prepare("SELECT * FROM zbanowane");
  7. }
  8. else {
  9. $result=$this->db->prepare("SELECT ip FROM zbanowane WHERE id=:id limit 1");
  10. $result->bindParam(':id',$id, PDO::PARAM_INT);
  11. }
  12.  
  13. if(!$result->execute()) {
  14. throw new Exception("Wystąpił bląd podczas pobierania zbanowanego IP!");
  15. }
  16. else{
  17. $wynik=$result->fetch(PDO::FETCH_ASSOC);
  18. return $wynik;
  19. }
  20. }
Go to the top of the page
+Quote Post
PawelC
post
Post #3





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


O coś w tym stylu mi chodziło (IMG:style_emoticons/default/smile.gif) Dziękuję za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:38