Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL / PDO...] Powtarzający się kod
terabit
post
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Witam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

mam np taki oto kod:

  1. <?php
  2. public function getOnePerson($id) {
  3.        
  4.        try {
  5.            
  6.            $pdo = new PDO('mysql:host=localhost;dbname=contactmanager', 'root', 'root');
  7.            $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8.            $row = $pdo -> query("SELECT * FROM persons WHERE id = $id");
  9.  
  10.            return $row;
  11.            
  12.        } catch (PDOException $e) {
  13.            echo 'Error:' . $e->getMessage();    
  14.        }
  15.        
  16.        $row -> closeCursor();
  17.        
  18.    }
  19. ?>


i nasuwa się pytanie, co zrobić żeby tego tyle razy nie powtarzać ?
mam jakąś tam klase do zarządzania Osobami i praktycznie w każdej metodzie musze powtarzać ten sam fragment kodu...

jak wy to rozwiązujecie?
czy poprostu zrobić dodatkową metodę do której będę przekazywać coś takiego:
  1. <?php
  2. $row = $pdo -> query("SELECT * FROM persons WHERE id = $id");
  3. ?>

choć to pewnie nia zawsze się sprawdzi...

pisząc obiektowo raczej nie powinno się powtarzać kilka razy (DRY;))

jakieś rozwiązanie ?

z góry dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
terabit
post
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Czy tak będzie lepiej ? :
  1. <?php
  2. public $pdo;
  3.    
  4.    public function __construct() {
  5.  
  6.        $this->pdo = new PDO('mysql:host=localhost;dbname=.....', 'root', 'root');
  7.        $this->pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8.        
  9.    }
  10.    
  11.  
  12.    public function getOnePerson($id) {
  13.  
  14.        try {
  15.  
  16.            $row = $this->pdo -> query("SELECT * FROM persons WHERE id = $id");
  17.            return $row;
  18.            
  19.        } catch (PDOException $e) {
  20.            echo 'Error:' . $e->getMessage();    
  21.        }
  22.        
  23.    }
  24.  
  25.  
  26.    public function __destruct() {
  27.        
  28.        $row -> closeCursor();
  29.        
  30.    }
  31. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 17:21