Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][PDO] Elegancka obsługa błędów z metodą fetch() ?
ZaXaZ
post
Post #1





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


  1. $us = $PDO->prepare('SELECT * FROM `users` WHERE `numer`=?;');
  2. if ($us)
  3. {
  4. $er = $us->execute(array($from));
  5. }
  6. if ($er)
  7. {
  8. if ($er->fetch(PDO::FETCH_ASSOC))
  9. {
  10. $user = $er;
  11. }
  12. else
  13. {
  14. //wstawienie rekordu do bazy, jesli nie istnieje.
  15. exit;
  16. }
  17. }


próbowałem już try-catch i bez powodzenia...

Kod
<b>Fatal error</b>:  Call to a member function fetch() on a non-object


Ten post edytował ZaXaZ 14.06.2014, 14:50:23


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


  1. $us->fetch(PDO::FETCH_ASSOC)




Ten post edytował memory 14.06.2014, 14:52:59
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


PDOException
http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #4





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


@memory, hmmm ... bez if'a juz bylo. Jednak wazne jest zeby wstawialo rekord jesli nie istnieje.
@Turson, robilem juz catch(PDOException $e) tak jak pisalem.


--------------------
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jak wstawiało rekord, jeżeli masz SELECT a nie INSERT?

Błędy zapytań możesz obsłużyć też:
  1. $stmt = $pdo->prepare('zapytanie');
  2. if(!$stmt->execute()) print_r($stmt->errorInfo());


Ten post edytował Turson 14.06.2014, 14:59:38
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 14.06.2014, 15:59:19 ) *
Jak wstawiało rekord, jeżeli masz SELECT a nie INSERT?

Błędy zapytań możesz obsłużyć też:
  1. $stmt = $pdo->prepare('zapytanie');
  2. if(!$stmt->execute()) print_r($stmt->errorInfo());


1. zastąpiłem kod komentarzem bo offtopowy;
2. dzięki, działa.

Ten post edytował ZaXaZ 14.06.2014, 15:14:43


--------------------
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 - 04:36