Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyjatki, PDO - konfiguracja
koodlaty
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Gmeram sobie i gmeram po necie - bezskutecznie.

Kto mi powie jak ustawić sobie globalnie - dla wszystkich tworzonych instancji PDO, zwracanie błędów za pomocą wyjątków? Czyli dla wszystkich obiektów:
  1. <?php
  2. setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
  3. ?>

Kto ma głębsze doświadczenia z PDO i mi podpowie (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) ?
Go to the top of the page
+Quote Post
dtb
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


nie testowane
  1. <?php
  2. function newpdo($dsn, $user='', $pass='', $driver='') {
  3. if (is_array($driver))
  4.  $pdo = new pdo($dsn, $user, $pass, $driver);
  5. else
  6.  $pdo = new pdo($dsn, $user, $pass);
  7. }
  8. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  9. return $pdo;
  10. }
  11.  
  12. $obiekt = newpdo('mysql:dbname=testdb;host=127.0.0.1', 'user', 'pass');
  13. ?>


Ten post edytował dtb 28.11.2006, 16:54:35
Go to the top of the page
+Quote Post
koodlaty
post
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Spoko, spoko - tego typu sztuczki pewnie okażą się skuteczne. Na mój gust jednak mało eleganckie. Nie dyskutujmy jednak o gustach...

Chciałbym wiedzieć jak skonfigurować sobie klasę PDO, a nie tworzone obiekty. Czy w ogóle jest to możliwe?

Wyobrażam to sobie jakoś tak:
  1. <?php
  2. PDO::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
  3. ?>
Niestety tego typu eksperyment powoduje wywalenie Apache-a.

No chłopaki, kto już ujeździł PDO - standard przyszłości? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dtb
post
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


dlaczego "malo eleganckie"? a takie cos:

  1. <?php
  2.  
  3. class mypdo extends pdo {
  4. public function __construct($dsn, $user='', $pass='', $driver='') {
  5. if (is_array($driver))
  6. parent::__construct($dsn, $user, $pass, $driver);
  7. else
  8. parent::__construct($dsn, $user, $pass);
  9. $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  10. }
  11. }
  12.  
  13. $pdo = new mypdo('mysql:dbname=test;host=127.0.0.1', 'root', '');
  14.  
  15. ?>


obawiam sie, ze inaczej sie nie da :/

Ten post edytował dtb 28.11.2006, 23:07:29
Go to the top of the page
+Quote Post
koodlaty
post
Post #5





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Tak - takiego rozwiązania używam obecnie. Nie wiem jednak czy jest sens stosować dziedziczenie nadpisując jedną tylko metodę, tylko po to by zmienić jedną opcje...

Wiele klas możemy skonfigurować przed użyciem - stąd pytanie - czy nie da się zrobić tego z PDO?

PS Po co stawiasz public przed konstuktorem?

Ten post edytował koodlaty 28.11.2006, 23:15:32
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(koodlaty @ 28.11.2006, 23:12:36 ) *
PS Po co stawiasz public przed konstuktorem?

Pewnie po to żeby był publiczny (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Przecież równie dobrze może być prywatny.
Go to the top of the page
+Quote Post
NuLL
post
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Nie da sie czegos takiego zrobic - atrybuty sa przypisywanie inwidualnie dla kazdego z polaczen.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
Nie wiem jednak czy jest sens stosować dziedziczenie nadpisując jedną tylko metodę, tylko po to by zmienić jedną opcje...

A jesli tego nie zastosujesz to co ci zostanie? Po kazdym utworzeniu nowego PDO ustawianie trybu wyrzucania wyjatkow (swoja droga wybrali kiepskie zachowanie domyslne, przeciez to php 5.1 i ludzie go uzywajacy znaja sie na obsludze wyjatkow i chca jej uzywac) -- wiecej pisania i nowe okazje do bledow -- gdzies zapomnisz i co?

Pozostaje ci jeszcze wzorzec Rejestr -- raz laczysz sie z baza i przechowujesz w nim polaczenie.
Go to the top of the page
+Quote Post
koodlaty
post
Post #9





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Cytat(mike_mech @ 29.11.2006, 00:17:13 ) *
Pewnie po to żeby był publiczny (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Przecież równie dobrze może być prywatny.

Jasne, że może ale publiczny jest domyślnie.
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: 27.08.2025 - 10:51