Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> require_once
kliszaq
post 27.09.2003, 13:47:51
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
Go to the top of the page
+Quote Post
adwol
post 27.09.2003, 13:53:59
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.
Go to the top of the page
+Quote Post
kliszaq
post 27.09.2003, 13:58:20
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
Go to the top of the page
+Quote Post
kliszaq
post 27.09.2003, 14:01:33
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
Go to the top of the page
+Quote Post
adwol
post 27.09.2003, 14:02:21
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''.
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 - 00:45