![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 0 Dołączył: 27.09.2013 Ostrzeżenie: (10%) ![]() ![]() |
Witam, w config.php mam funkcje, która pobiera dane użytkownika:
Trochę tutaj pozamieniałem na PDO lecz wywala bląd: Kod Fatal error: Call to a member function query() on a non-object in /home/xxx/public_html/config.php on line 36 Kilka linijek wyżej jest połączenie wykorzystujące PDO, mimo to wywala ten błąd, proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 0 Dołączył: 27.09.2013 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 6 Dołączył: 30.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W PDO metoda exec() to nie to samo co query(), czy połączenie prepare() i execute() - polecam doczytać, bo tak napisane nie zadziała - exec() nie służy do odczytywania rekordów z bazy. Polecam również zapomnieć o mysql_num_rows i innych tego typu starociach, poczytać konkretnie o PDO i tego się trzymać. Żeby być pomocnym, a nie po prostu opowiadać pierdoły, dwa fragmenty:
Cytat(Xelah) Autor dostaje błąd tylko i wyłącznie dla tego, że jego funkcja nie ma dostępu do zmiennej $pdo, ponieważ ta ma inny scope. A żeby miała ten sam, to w jego przypadku należy ją przekazać jako parametr. Innego rozwiązania nie ma. I wtedy nie będzie miał błędu "Call to a member function query() on a non-object ". Nie ma innego rozwiązania? Zawsze jest inne rozwiązanie! (IMG:style_emoticons/default/smile.gif) Obiekt PDO można stworzyć wewnątrz funkcji, a jako parametry podać wartości z $_POST; będzie przejrzyściej - chyba że mamy w planach dużo innych zapytań, ale nie wygląda na to. Faktem jest, że trzeba coś tej funkcji dać (albo zrobić wszystko "na miejscu").
Nie piszemy zapytań w ten sposób! Poczytaj o SQL injection, a następnie o prepared statements (czyli metodach PDO: prepare() i execute() ). I jeszcze:
- nie zadziała. Jeszcze raz polecam lekturę w temacie PDO: query(), prepare(), execute(), exec() - szczególnie o tym, co zwracają te metody. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 08:14 |