Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dlaczego wywala błąd "Call to a member function query()"
soft
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.02.2009

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


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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Necsord
post
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


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.

Ten post edytował Necsord 7.03.2012, 13:48:08
Go to the top of the page
+Quote Post
soft
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.02.2009

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


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. }
Go to the top of the page
+Quote Post
motyl-pl
post
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

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


W mysql_connect:
nie możesz wybierać bazy danych,
Spójrz na:
mysql_select_db

Ten post edytował motyl-pl 7.03.2012, 15:49:20
Go to the top of the page
+Quote Post
soft
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.02.2009

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


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
Go to the top of the page
+Quote Post
Mat123
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.08.2013

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


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?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Temat: Jak poprawnie zada pytanie
Tam masz wskazowki jak analizowac tak proste bledy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 15:30