Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysqli i dziwny blad
dzesi
post 21.01.2008, 22:35:53
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Witam mam problem z pdo mianowicie pokazuje mi błąd Call to a member function query() on a non-object in ze nie ma obiektu query .

  1. <?php
  2. $zapytanielog = "SELECT * FROM `user` WHERE login='" .$this->login. "'";
  3. //tu pokazuje bląd czy cos robie nie tak ?$sprawdzlog = $polacznie->query($zapytanielog);
  4.  if($sprawdzlog->num_rows($sprawdzlog) > 0)
  5. ?>


Ten post edytował dzesi 21.01.2008, 22:36:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
sticker
post 21.01.2008, 23:03:58
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


pokaż cały kod ale zakładam że nie utworzyłeś instancji obiektu mysqli


--------------------
Go to the top of the page
+Quote Post
dzesi
post 22.01.2008, 00:04:01
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


No jak nie przecież jest łaczy sie itd tylko wywala nadal blad nie wiem co jest nie tak
  1. <?php
  2.  
  3.  public function polaczenie()  {
  4. $polaczenie = new mysqli(CONNECT,USER,PASSWORD,DATABASE);
  5. if (mysqli_connect_errno())
  6. {
  7. echo "Blad nie mozna polaczyc sie z baza danych ".mysqli_connect_error();
  8. exit();
  9. }
  10.  
  11.  }
  12. ?>


Ten post edytował dzesi 22.01.2008, 00:10:07
Go to the top of the page
+Quote Post
nevt
post 22.01.2008, 08:10:25
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


no oto w funkcji polaczenie() ładnie inicjujesz połaczenie z bazą, a rezultat przypisujesz do zmiennej lokalnej która nie jest widoczna w reszcie kodu...
jeżeli chcesz się odwołać do zmiennejj globalnej $połączenie (niewskazane), to musisz dodać linijkę:
  1. <?php
  2. public function polaczenie()  {
  3. global $polaczenie;
  4. $polaczenie = new mysqli(CONNECT,USER,PASSWORD,DATABASE);
  5. ?>

ale najlepiej, zebyś tego nie robił w ten sposób... dużo lepiej będzie jak zrobisz:
  1. <?php
  2. public function polaczenie()  {
  3.  return new mysqli(CONNECT,USER,PASSWORD,DATABASE);
  4. }
  5.  
  6. $polaczenie = polaczenie();
  7. ?>


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
dzesi
post 22.01.2008, 12:50:01
Post #5





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


he a dla czego niby przez returm zwracanie , tak jak ja robie jest nie poprawnie ?( dodam ze korzystam z manuala i tam jest tak pokazane)
jak daje return i potem ma byc to wywołane poza klasa czy w klasie $start->$polaczenie=polaczenie(); ? za bardzo nie rozumie dlaczego przypisywać zmienna do funkcji przecież to tak nic nie daje bo nadal dostaje błąd ze nie nie ma obiektu queery ?
Prosze o pomoc w tej sprawie worriedsmiley.gif

Dedalem global i teraz w tej funkcji pokazuje mi ten sam błąd
  1. <?php
  2. public function sprawdzanie_user($login) {
  3.  //Sprawdzanie czy uzytkownik znajduje sie w bazie 
  4.  $zapytanielog = "SELECT * FROM `user` WHERE login='" .$this->login. "'";
  5.  $zapytanieuser = $polaczenie->query($zapytanielog);
  6. $num_rows=$zapytanieuser->num_rows > 0 ;
  7. ?>

Może cos jest z zapytaniem ? , ale nie powinno być żle
Go to the top of the page
+Quote Post
nevt
post 22.01.2008, 13:16:31
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


bo w funkcji sprawdzanie_user($login) też musisz musisz zarejestrować zmienną globalną... weź w maualu poszukaj sobie i uważnie poczytaj rozdział o zasięgach nazw zmiennych i funkcji...

Wybacz, ale jeśli masz podręcznik w którym uczą, że należy operować na zmiennych globalnych z wnętrza funkcji lub metod obiektów - to weź ten podręcznik pod pachę - wyjdź na trawniczek przed blok / domek i zrób sobie z niego ognisko - wtedy będzie z tego przynajmniej jakiś pożytek...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
dzesi
post 22.01.2008, 13:27:31
Post #7





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Wiesz przestań mi tu p(.. worriedsmiley.gif ) farmazony tylko byś mógł podać roziwiazanie dlaczego tak sie dzieje ?
w manualu nic nie jest napisane ze do mysli trzeba dawać globalne zmienne ,I dlaczego mam poprawny kod a on nie działa czy to jakiś bug ?.I zapomniałeś chyba po co jest to forum po to żeby pomagać innym jak maja z czymś problem , a nie najłatwiej opisać to i sie wymądrzać
Go to the top of the page
+Quote Post
nevt
post 22.01.2008, 15:02:43
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


Cytat(dzesi @ 22.01.2008, 13:27:31 ) *
Wiesz przestań mi tu p(.. worriedsmiley.gif ) farmazony tylko byś mógł podać roziwiazanie dlaczego tak sie dzieje ?
w manualu nic nie jest napisane ze do mysli trzeba dawać globalne zmienne ,I dlaczego mam poprawny kod a on nie działa czy to jakiś bug ?.I zapomniałeś chyba po co jest to forum po to żeby pomagać innym jak maja z czymś problem , a nie najłatwiej opisać to i sie wymądrzać

kolego miły inaczej... to nie MÓJ problem, że używam KIEPSKIEGO podręcznika, tylko TWÓJ...
oczywiście, że jednym z celów tego forum jest pomoc innym... no i chyba dostałeś rozwiązanie - właściwe podane na tacy ...
ale TY się upierasz, że musi działać tak jak jest w TWOJEJ książce...
słuchaj - tego typu pretensje spisz sobie i wyślij do atora tej wybitnej publikacji...
a ja się nie wymądrzam - tylko nie bardzo mam ci jak pomóc, skoro nie rozumiesz czym się różni zmienna globalna od lokalnej... nie rozumiesz dlaczego lepiej jest kiedy funkcje i metody nie używają zmiennych globalnych... wybacz, mogę pomóc ci rozwiązać konkretny błąd ale nie licz na wykłady z podstaw programowania.
uspokuj się i poszukaj innej książki / manuala - w sieci masz tego mnóstwo...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
nevt
post 29.02.2008, 12:52:35
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


skoro
Cytat
Po pierwsze nie zużywam już książek tylko manual i to co znajdę w sieci .Po drugie to nie jestem początkujący , nie wiem na jakiej podstawie to stwierdziłeś .

tak doświadczony programista z pewnością bez problemu znajdzie odpowiedź na to dziecinnie proste pytanie w swoim doskonałym manualu. ja dotychczas nie spotkałem takiego manuala w którym nie byłoby omówienia przestrzeni nazw i zasięgów zmiennych - może twój manual wyznacza jakieś nowe trendy i standardy ?

Ten post edytował nevt 29.02.2008, 12:53:13


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:33