![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
Problem jest nastepujacy: mam 2 pliki index.php, mysql.class.php, oraz settings.php. W pliku mysql.class.php mam klase do laczenia sie z baza danych oraz kilka innych funkcji:
[php:1:7a1c3f57aa]<?php class mysql { var $strCon; var $arrResult; var $strerr; function mysql() { require( 'settings.php' ); $this->strCon = @mysql_connect( $strDBHost, $strDBUser, $strDBPass ) or die( 'Brak połączenia z baza danych.' ); } function sel_db( $strDBName ) { $this->strerr = @mysql_select_db( $strDBName ) or die ( 'Baza danych nie istnieje.' ); return $this->strerr; } function shut_down() { mysql_close($this->strCon); } } ?>[/php:1:7a1c3f57aa] w pliku settings mam dane $strDBHost, $strDBName, $strDBUser, $strDBPass natomiast w pliku index.php mam wywolanie klasy z polaczeniem Jesli daje w pliku index require_once( 'settings.php' );, to nie laczy mi z baza, bo zmienna nie jest przekazana do klasy, natomiast jesli daje w klasie require_once(); to w pliku inexowym jak wpisze $objCon->sel_db( $strDBName ); to nie widzi nazwy bazy danych... Chce to zrobic za pomoca require_once (a propos THOT'a). Jakies propozycje? -------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jesli daje w pliku index require_once( 'settings.php' );, to nie laczy mi z baza, bo zmienna nie jest przekazana do klasy, natomiast jesli daje w klasie require_once(); to w pliku inexowym jak wpisze $objCon->sel_db( $strDBName ); to nie widzi nazwy bazy danych...
Pokaż plik z wywołaniem [php:1:c4aaa466d3]<?php $objCon->sel_db($strDBName); ?>[/php:1:c4aaa466d3] Ono jest w jakiejś funkcji czy w głównym bloku? require_once wciąga plik w aktualnym zasięgu, więc jeśli robisz to w zasięgu globalnym to tam powinne być te zmienne, a jeśli w jakiejś funkcji to pewnie trzeba odwołać się do zmiennej globalnej. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
wiec powinienem zrobic tak?
[php:1:87d98349c0]<?php require_once('mysql.class.php'); //tegowczesniej nie bylo co ponizej: require_once('settings.php'); /to juz bylo $objCon = new mysql(); $objCon->sel_db( $strDBName ); $objCon->shut_down(); ?>[/php:1:87d98349c0] -------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 11.09.2003 Skąd: Giżycko/Wawa Ostrzeżenie: (0%) ![]() ![]() |
okej juz dziala, ale mam pytanie
po co uzywamy tak w ogole reqiure_once, a nie zwyklego require? i jak mozna z zasiegu klasy (w jakiejs funkcji) uzywajac require_once lub tez require przekazac zmienne poza klase? I czy to jest w ogole mozliwe? -------------------- WWJD?
GG 4004548 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat wiec powinienem zrobic tak?
Tak. Po poprawnym połączeniu się z bazą możesz na wszelki wypadek usunąć unset-em zmienne $strDB*, żeby potem Ci gdzieś przez przypadek nie ,,wyciekły''. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:45 |