Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] uzywanie PDO - wyjatki
ritso
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.04.2011

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


witam, jak sie powinno uzywac wyjatkow w PDO?

na wikibooks jest taki przyklad

  1. <?php
  2.  
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root');
  6. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  7.  
  8. $stmt = $pdo -> query('SELECT id, nazwa, opis FROM produkty');
  9. echo '<ul>';
  10. while($row = $stmt -> fetch())
  11. {
  12. echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
  13. }
  14. $stmt -> closeCursor();
  15. echo '</ul>';
  16. }
  17. catch(PDOException $e)
  18. {
  19. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  20. }
  21. ?>


ale chcialbym sobie laczenie z baza zrobic w osobnym pliku, zeby to potem latwo inkludowac, wiec robie tak:

  1. //polacz.php
  2. try
  3. {
  4. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root');
  5. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7. }
  8. catch(PDOException $e)
  9. {
  10. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  11. }


potem sobie inkluduje ten plik np w indexie, ale jak mi sie nie polaczy z baza i wywali blad to potem reszta strony i tak sie wyswietla, ale z bledami, bo nie moze pobrac danych z bazy, wiec jak to rozwiazac?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Na samym końcu twojej sekcji Catch dodać "die()";
Poczytaj o obsłudze wyjątków w manualu.


--------------------
Go to the top of the page
+Quote Post
ritso
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.04.2011

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


dzieki, a jeszcze takie pytanie mam. chce sobie laczenie z baza, pobieranie itp itd zrobic w osobnym pliku i teraz pytanie czy to moze byc klasa?

jesli zrobilbym tak:

  1. //laczenie.php
  2. class baza {
  3.  
  4. public $id;
  5.  
  6. public function polacz(){
  7. try
  8. {
  9. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root');
  10. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.  
  12. }
  13. catch(PDOException $e)
  14. {
  15. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  16. }
  17.  
  18. }
  19.  
  20. public function getall(){
  21.  
  22. $stmt = $pdo -> query('SELECT id, nazwa, opis FROM produkty');
  23. echo '<ul>';
  24. foreach($stmt as $row)
  25. {
  26. echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
  27. }
  28. $stmt -> closeCursor();
  29. echo '</ul>';
  30. }
  31.  
  32. public function getone($id) {
  33.  
  34.  
  35. $stmt = $pdo -> query('SELECT id, nazwa, opis FROM produkty where id= :id');
  36. $stmt -> bindValue(':id', $id, PDO::PARAM_STR);
  37. echo '<ul>';
  38. foreach($stmt as $row)
  39. {
  40. echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
  41. }
  42. $stmt -> closeCursor();
  43. echo '</ul>';}
  44.  
  45. }


no i potem np index.php:

  1. include 'laczenie.php';
  2. $baza = new baza();
  3. $baza->polacz();
  4. $baza->getall();


to jest poprawnie zrobione?

Ten post edytował ritso 6.04.2011, 11:51:45
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 23:57