Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego wywala błąd "Call to a member function query()"
Forum PHP.pl > Forum > Przedszkole
soft
Witam, mam oto taki kod a w zasadzie samą funkcję:
  1. function rejestruj($nazwa_uz, $email, $haslo) {
  2. // zarejestrowanie nowej osoby w bazie danych
  3. // zwraca true lub komunikat o błędzie
  4.  
  5. // połączenie z bazą danych
  6. $lacz = lacz_bd();
  7.  
  8. // sprawdzenie, czy nazwa użytkownika nie powtarza się
  9. $wynik = $lacz->query("select * from uzytkownik where nazwa_uz='".$nazwa_uz."'");
  10. if (!$wynik) {
  11. throw new Exception('Wykonanie zapytania nie powiodło się.');
  12. }
  13.  
  14. if ($lacz->num_rows>0) {
  15. throw new Exception('Nazwa użytkownika zajęta — proszę wrócić i wybrać inną.');
  16. }
  17.  
  18. // jeżeli wszystko w porządku, umieszczenie w bazie danych
  19. $wynik = $lacz->query("insert into uzytkownik values
  20. ('".$nazwa_uz."', sha1('".$haslo."'), '".$email."')");
  21. if (!$wynik) {
  22. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować później.');
  23. }
  24.  
  25. return true;
  26. }


i wywala mi błąd: "Fatal error: Call to a member function query() on a non-object in /homepages/13/d345927298/htdocs/log/funkcje_uwierz.php on line 13"

Prosze o pomoc, może jakaś wskazówka??
Necsord
Dokładnie to co jest napisane. Odwołujesz sie do metody query() na zmiennej która nie ma tej metody, a nawet więcej nie jest nawet obiektem. Łopatologicznie taki błąd występuje, gdy np:

  1. $obiekt = "Mam na imie Marian";
  2. $obiekt->rozwalBudynek();


Zmienna $obiekt to nie instancja klasy tylko ciąg znaków. Wracając do twojego kodu, sprawdź co masz w zmiennej $lacz.
soft
A w ogole to:
  1. $lacz = lacz_bd();

jest dobrze składniowo??

a pod lacz_bd(); mam:
  1. function lacz_bd() {
  2. $wynik = mysql_connect('host', 'nazwa', 'haslo', 'baza');
  3. if (!$wynik) {
  4. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  5. } else {
  6. return $wynik;
  7. }
  8. }
motyl-pl
W mysql_connect:
nie możesz wybierać bazy danych,
Spójrz na:
mysql_select_db
soft
Kolejny problem:(
mam taki kod:
  1. $wynik = $lacz->query("insert into uzytkownik values ('".$nazwa_uz."', sha1('".$haslo."'), '".$email."')");
  2. if (!$wynik) {
  3. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować później.');
  4. }


i w trakcie wykonania wyswietlilo: Rejestracja w bazie danych niemożliwa — proszę spróbować później.
Czyli jak rozumiem cos jest nie tak z tym
  1. $wynik = $lacz->query("insert into uzytkownik values ('".$nazwa_uz."', sha1('".$haslo."'), '".$email."')");


Bo wczesniejsze etapy przeszlo.

Dobra, juz wszystko śmiaga, dzieki za rady, z każdej wyciągłem coś i zebrane do kupy wystartowalo:)
Jeszcze raz dzieki:)
CLOSE
Mat123
Cytat(soft @ 7.03.2012, 16:56:03 ) *
Kolejny problem:(
mam taki kod:
  1. $wynik = $lacz->query("insert into uzytkownik values ('".$nazwa_uz."', sha1('".$haslo."'), '".$email."')");
  2. if (!$wynik) {
  3. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować później.');
  4. }


i w trakcie wykonania wyswietlilo: Rejestracja w bazie danych niemożliwa — proszę spróbować później.
Czyli jak rozumiem cos jest nie tak z tym
  1. $wynik = $lacz->query("insert into uzytkownik values ('".$nazwa_uz."', sha1('".$haslo."'), '".$email."')");


Bo wczesniejsze etapy przeszlo.

Dobra, juz wszystko śmiaga, dzieki za rady, z każdej wyciągłem coś i zebrane do kupy wystartowalo:)
Jeszcze raz dzieki:)
CLOSE


Mam ten sam problem co kolega wyżej kod jest identyczny jaka jest tego przyczyna?
nospor
Temat: Jak poprawnie zada pytanie
Tam masz wskazowki jak analizowac tak proste bledy
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.