Autor | Zpráva | ||
---|---|---|---|
EdWood Profil |
#1 · Zasláno: 9. 3. 2012, 21:12:02
Zdravím,
s OOP začínám a není mi jasné, jak vyřešit následující problém. Mám vytvořený connect k db: try { $db = new PDO('pgsql:host=localhost;dbname=x', 'x', 'x'); } catch (Exception $e) { echo "Nelze se připojit k databázi ".$e->getMessage(); exit(); } Dále mám třídu, kde mi metoda pracuje s db. Aby správně fungovala, musí u ní být vždy výše zmíněný kód. To mi přijde divné, protože by pak u každé metody, kde budu pracovat s db, došlo k napojování znovu a znovu. public function pridat($p_jmeno, $p_prijmeni, $p_prezdivka) { try{ $db = new PDO('pgsql:host=localhost;dbname=x', 'x', 'x'); } catch (Exception $e) { echo "Nelze se připojit k databázi ".$e->getMessage(); exit(); } try { $stmt = $db->query("INSERT INTO osoby (prezdivka, jmeno, prijmeni) VALUES ( '$p_prezdivka', '$p_jmeno', '$p_prijmeni')"); echo "<p>Osoba byla úspěšně vložena</p>"; } catch (Exception $e) { echo "<p>Při zpracování SQL dotazu došlo k chybě ".$e->getMessage()."</p>"; } } Jak se to tedy řeší? Děkuji |
||
Bertram Profil |
#2 · Zasláno: 9. 3. 2012, 22:28:37
Ahoj, můžeš si objekt připojení vytvořit jen jednou a třídám, které ho potřebují ho předávat v konstruktoru nebo setterem.
|
||
EdWood Profil |
#3 · Zasláno: 9. 3. 2012, 22:58:33
Díky, nakonec jsem to vyřešil přes singleton (cca patý komentář).
|
||
Časová prodleva: 11 let
|
0