![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam klasę która wykonuje zapytania do bazy danych i wynik zapytania chciałbym zwrócić poza tą klasę. Jak mogę to zrobić
Zapytani fetch() nie działają. Klasa z zapytaniem PDO.
W klasie jeśli dokonam zapytania fetch() to wszystko gra. Jak to powinno być napisane aby działało poza klasą? Dziękuję. Ten post edytował piekarz 16.02.2017, 12:29:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam. Mam klasę która wykonuje zapytania do bazy danych i wynik zapytania chciałbym zwrócić poza tą klasę. Jak mogę to zrobić
Zapytani fetch() nie działają. Klasa z zapytaniem PDO.
W klasie jeśli dokonam zapytania fetch() to wszystko gra. Jak to powinno być napisane aby działało poza klasą? Dziękuję. $user = new getData(); nie masz takiej methody $user->fetch(); ale czemu to nie może być wewnątrz $user->loadUser($login); ? Co chcesz osiągnąć? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Skoro zwracasz coś z loadUser() to wypadało by odebrać to do jakiejś zmiennej i na niej wykonać fetch();
Ten post edytował Pyton_000 16.02.2017, 13:06:42 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem to w ten sposób:
I też nie działa. A chce osiągnąć to aby mógł do wyników pobranych z bazy danych odwoływać się w taki sposób: $arr['id']; $arr['imie'] itp. A nie w sposób: $user->getData('id); I tylko tyle. Może i to nie jest super do szczęścia potrzebne ale ciekawi mnie czy da się tak zrobić. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
var_dump($arr, $result);
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/pdostatement.fetch.php
$arr = $result->fetch(PDO::FETCH_ASSOC); -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po zrobieniu: $arr = $result->fetch(PDO::FETCH_ASSOC);
var_dump($arr); Otrzymuję "bool(false)" |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Więc nie było rekordów spełniających warunek albo jakiś inny błąd. Włącz pełne raportowanie.
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
A jak się włącza pełne raportowanie?
Rekord spełniający warunek na pewno jest bo rowCount() zwraca mi 1, a po drugie gdy użyje metody fetch() w obiekcie getData to wszystko jest ok. A u Ciebie taki kod działa? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz przypięty wątek. Używasz przestrzenie nazw?
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
To jest testowy kawałek kodu w całkowicie nowym dokumencie.
Coś takiego nie działało mi właśnie w projekcie który sklejam powoli. Myślałem że tam coś jest namieszane dlatego postanowiłem przetestować to w nowym pustym dokumencie. Więc cała moja aplikacja składa się z trzech plików. Kod poniżej. Plik get.php
Plik getData.class.php
I plik index.php Ten post edytował piekarz 17.02.2017, 21:22:32 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie:
$user->loadUser($login); $arr = $user->fetch() A: $stmt = $user->loadUser($login); $arr = $stmt->fetch(); Zwracaj uwage na to co piszesz, co maja twoje klasy i co zwracaja funkcje,ktore sam tworzysz -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przecież to też nie działa.
Wynik var_dump jest ten sam co poprzednio. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Poprawilem ci kod, bo miales totalnie zle, wiec sie prosze nie przeciezuj.
Wlacz ze wkoncu wyswietlanie bledow a nie latasz po omacku -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 23.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Taki na pewno nie zadziała bo hasła do bazy nie ma. Twoja metoda zwraca PDOStatement i normalnie na tym masz operować. Zrób dodatkowo var_dump($login); przed przekazaniem do loadUser(). Plików nie nazywa się costam.class.php tylko według nazwy klasy + autoloader. http://www.php-fig.org/psr/psr-4/
Ten post edytował viking 18.02.2017, 07:42:25 -------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
@Piekarz
Nospor zaprzeczył twoje "Przecież", bo błędnie zinterpretowałeś jego podpowiedź. Musisz zrozumieć co dana funkcja ma Ci zwrócić, dlatego tak bardzo chcemy abyś czytał to co pisze w var_dump, a pisze tam bardzo dużo na temat obiektów które pobierasz. Jak napisałeś wcześniej, to obiekt $user nie ma metody fetch(), więc nie będzie Ci działać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:32 |