Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PDO i wyświetlanie błędów.
Forum PHP.pl > Forum > PHP > Object-oriented programming
tomahawk
Witam!

Jestem na etapie przerabiania/pisania skryptu.

Wkurza mnie że jak jakiś błąd zrobie w sql to nie wyświetla mi żadnego błędu... no chyba że sam wydłubię go z $smth->errorInfo() ale przecież nie będę wszędzie tego skrobał...

Zatem jak włączyć (lub dopisać coś do klasy) wywalanie errorów?
LBO
Ustaw atrybut PDO::ATTR_ERRMODE na PDO::ERRMODE_EXCEPTION.
PDO zacznie rzucać wyjątkami.
tomahawk
Kurcze a czemu ta atrybuty są takie dziwne... i niesympatyczne...

Czy nie lepiej było by poprostu:
errorMode, exception

?
LBO
Nie wiem o co Ci chodzi.

To są stałe klasy i nazwy są jak najbardziej przejrzyste.
Mephistofeles
Tak, byłoby lepiej - do czasu aż będziesz musiał skorzystać z klasy XYZ, która też sobie takie stałe ustali, ale przypisze do nich inne wartości. I jak wtedy rozwiążesz problem? Taki styl jest jak najbardziej słuszny winksmiley.jpg.
Maciekbjw
Cytat(tomahawk @ 14.03.2009, 21:32:21 ) *
Witam!

Jestem na etapie przerabiania/pisania skryptu.

Wkurza mnie że jak jakiś błąd zrobie w sql to nie wyświetla mi żadnego błędu... no chyba że sam wydłubię go z $smth->errorInfo() ale przecież nie będę wszędzie tego skrobał...

Zatem jak włączyć (lub dopisać coś do klasy) wywalanie errorów?


Zainteresuj się wyjątkami (ang. Exceptions)
Link: http://pl.php.net/exceptions

Teraz przykład: (pisane z palca, mogą być błędy tongue.gif )
  1. <?php
  2. class News {
  3.  
  4.  
  5. public function add() {
  6.  
  7.    if($this->db->exec("INSERT INTO news VALUES ('null','tytul')"))
  8.        return 1;
  9.            else
  10.                throw New Exception("Nie udalo sie zapisać newsa");
  11.                
  12.                }
  13.            
  14. }            
  15. try {
  16.    $news = New News();
  17.    $news->add();
  18.    }
  19.    catch(Exception $error)
  20.        $error->getMessage();
  21.        
  22.    
  23. ?>
erix
Przecież PDO zwraca PDOException w przypadku niepowodzenia, o ile pamiętam...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.