Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] uzywanie PDO - wyjatki
Forum PHP.pl > Forum > Przedszkole
ritso
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?
wookieb
Na samym końcu twojej sekcji Catch dodać "die()";
Poczytaj o obsłudze wyjątków w manualu.
ritso
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?
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.