Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] problem z klasą obsługującą bazę danych, zmienne a funkcja mysql_close()
saperos
post 10.02.2009, 20:42:05
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.02.2009

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


Witam wszystkich forumowiczów.

Jest sobie taka klasa:
  1. <?php
  2. class db{
  3. var $connect;
  4.  
  5. function __construct(){}
  6.  
  7. public function db_connect ($_hostname, $_login, $_password, $_database){
  8. $connect = mysql_connect($_hostname,$_login,$_password);
  9. mysql_select_db($_database);
  10. return $this->connect;
  11. }
  12.  
  13. public function db_close() {
  14. return mysql_close($this->connect);
  15. }
  16.  
  17. }
  18.  
  19. $baza = new db;
  20. $baza->db_connect(&#092;"localhost\",\"login\",\"haslo\",\"baza\");
  21. $baza->db_close();
  22. ?>


Nie moge zrozumieć czemu w takiej formie funkcja db_close() zwraca warning

  1. Warning: mysql_close(): supplied argument IS NOT a valid MySQL-Link resource IN E:\xampp\htdocs\INDEX.php ON line 15


Dopiero return $this->connect = $connect w funkcji db_connect roziazuje probulem. Tylkoe nie mam zielonego pojecia czemu tak musi byc...

Ten post edytował saperos 10.02.2009, 21:20:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
erix
post 10.02.2009, 20:43:42
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tylkoe nie mam zielonego pojecia czemu tak musi byc..

Ponieważ zmienne, które są zadeklarowane w klasie mają być poprzedzone pseudoobiektem $this. Może być przecież zmienna lokalna funkcji o takiej nazwie, której chcesz użyć. Skąd interpreter ma wiedzieć, co miałeś na myśli?

Podstawy, podstawy...

PS. O ile pamiętam, to var był używany w PHP4.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
saperos
post 10.02.2009, 21:15:28
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.02.2009

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


po prostu nie trafia do mnie czemu interpreter "nie wie" że $this->connect to wlasnie ten $connect bedacy uchwytem mysql_connect, zmiennej lokalnej funkcji zadnej nie ma, wiec nie ma on w czym "wybierac"

i przyjmijmy ze tego var $connect; w ogole nie ma.

Ten post edytował saperos 10.02.2009, 21:16:11
Go to the top of the page
+Quote Post
nospor
post 10.02.2009, 21:17:23
Post #4





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




sprawa jest banalnie prosta i przyjmij to do wiadomosci:
$this->zmienna - wlasciwosc klasy
$zmienna - zmienna lokalna

koniec i kropka.

Cytat
trudne początki nauki obiektowego php

Popraw tytul. tytul ma odzwierciedlac problem a nie twoj stan wiedzy


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
saperos
post 10.02.2009, 21:25:06
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.02.2009

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


Cytat(nospor @ 10.02.2009, 21:17:23 ) *
sprawa jest banalnie prosta i przyjmij to do wiadomosci:
$this->zmienna - wlasciwosc klasy
$zmienna - zmienna lokalna

koniec i kropka.

a mysql_close() nie obsluzy wlasciwosci klasy, która trzeba przypisac do zmiennej lokalnej czy tak? smile.gif

Cytat(nospor @ 10.02.2009, 21:17:23 ) *
Popraw tytul. tytul ma odzwierciedlac problem a nie twoj stan wiedzy

zrobione.
Go to the top of the page
+Quote Post
erix
post 10.02.2009, 21:30:46
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
która trzeba przypisac do zmiennej lokalnej czy tak?

Trochę zapultałeś, ale aby rozjaśnić: $asd, to jest zmienna, a $this->asd, to też jest zmienna, tylko zadeklarowana w innym miejscu.

Czy autobus stoi w zajezdni, czy na przystanku, to też jest autobus. winksmiley.jpg


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
saperos
post 10.02.2009, 21:36:45
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.02.2009

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


chodzilo mi o to że mysql_close() nie obsluzy zmiennej w formie $this->asd smile.gif

Jeśli tak jest to wszystko juz rozumiem i rzeczywiście było to banalnie proste. Jednak czasem ktos musi pokazać ze takie to wlasnie jest. Dzieki!
Go to the top of the page
+Quote Post
erix
post 10.02.2009, 21:37:55
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
chodzilo mi o to że mysql_close() nie obsluzy zmiennej w formie $this->asd

Obsłuży i o tym napisałem. Manual Twoim przyjacielem, tam jest wszystko napisane, wystarczy tylko przeczytać (ze zrozumieniem).


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nospor
post 10.02.2009, 21:38:44
Post #9





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




obsluzy, tylko w tym $this->asd ma byc poprawny resource z mysql_connect() czego u ciebie nie bylo... przeciez ciagle ci to mowimy.
Wynik mysql_connect zapisywales do $asd a powinienes do $this->asd, skoro w mysql_close korzystasz z $this->asd


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
saperos
post 10.02.2009, 21:43:14
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.02.2009

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


przepraszam ciezki ze mnie uczen smile.gif kurcze juz wszystko jasne... dzieki za cierpliwosc! Jak mowicie klania sie nieznajomosc podstaw...
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: 14.08.2025 - 08:19