Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);

[es] :: PHP :: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);

[ Pregleda: 5426 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
195.252.118.*

Sajt: www.lun.co.yu


Profil

icon include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);08.09.2002. u 19:26 - pre 263 meseci
Naišao sam na jedan problem. Evo opisa:

Plan mi je da napišem funkcije za rad sa bazom podataka i da ih smestim u jedan fajl (recimo funkcije.inc.php). Nakon toga bih želeo da uradim include() tog skripta i da pozivam pojednostavljene funkcije njihovim imenima. Međutim, ovo već u start ue funkcioniše. Evo delova koda:

fajl_koji_bi_trebalo_da_includ-uje_funkcije.php:
------------------------------------------------------------
include("./etc/config.inc.php");
include("./etc/sql/${dbtype}/config.inc.php");
include("./etc/sql/${dbtype}/funkcije.inc.php");

// Povezivanje sa bazom podataka.
db-povezivanje($dbhost, $dbuser, $dbpass);
------------------------------------------------------------

U fajlu ./etc/sql/${dbtype}/config.inc.php se nalaze vrednosti za $dbhost, $dbuser i $dbpass.

Evo i fajla sa funkcijama za mysql:

funkcije.inc.php:
------------------------------------------------------------
<?

function db-povezivanje($dbhost, $dbuser, $dbpass) {
$dbc = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$dbc) {
die(Header("Location: index.php?greska=2"));
}
}

?>
------------------------------------------------------------

Medjutim, ovo ne radi. Fajl fajl_koji_bi_trebalo_da_includ-uje_funkcije.php jednostavno ne uradi ništa (čak ništa i ne ispiše mada ispod ima još koda koji bi morao da ispiše nešto ili makar da preusmeri) kada se na navedeni način pozove funkcija db-povezivanje().

Ukoliko umesto da includujem funkcije i pozivam moju funkciju db-povezivanje napišem :
------------------------------------------------------------
$dbc = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$dbc) {
die(Header("Location: index.php?greska=2"));
}
------------------------------------------------------------
direktno - sve radi kao pucka. Ali na meni zamišljeni način neće.

Gde sam napravio grešku, kako je ispraviti i da li je ovakva zamisao uopšte moguća u PHP-u?

Ovakva primena ovde deluje kao čisto komplikovanje ali je ovo samo početak koda. U redovima:

include("./etc/sql/${dbtype}/config.inc.php");
include("./etc/sql/${dbtype}/funkcije.inc.php");

se vidi promenljiva $dbtype tako da se ovaj skript jednostavno može koristiti sa svim bazama podataka uz prepisivanje funkcija za taj tip baze podataka i setovanje promenljive $dbtype.
*************************************
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 06:34 - pre 263 meseci
lepa ideja, ali ne morash da izmisljash rupu na saksiji. sve to sto si ti zamislio zove se db apstrakcija, i vec radi PEAR klasa DB, i njene potklase (valjda DB::MySql i slicno)...

a cini mi se i da ne znash sta je to PEAR. pear je PHP Extension and Application Repository, iliti biblioteka standardnih klasa i aplikacija za rad sa svacim u php-u, nastala po uzoru na perlovu slicnu biblioteku.

o pear-u pogledaj na http://pear.php.net a doticnui DB paket potrazi na http://pear.php.net/manual/en/core.db.php

(inace, cini mi se da je bash db apstrakcija bila jedan od pokretaca za razvoj pear-a, i jedna od prvih klasa uradjenih u njemu...)


a sada da se vratim na tvoje klase. problem je sto pogresno koristish { i } u stringovima. u tvom slucaju samo ih izbaci iz stringova kao sto su "./etc/sql/$dbtype/convig.inc.php" i sve bi trebalo da proradi. ako bash oces, mozes i da koristish { i } ali onda stavi sa "string {$var} strin". inace, { i } se koriste za slozene izraze u sred stringa, tipa "string {$array[$key]} " i slicno...

josh jedan predlog bi ti bio da (bar dok razvijash aplikacije) ukljucish error_reporting() na E_ALL. zivecesh duze ;).

meni se cini da su tebi skroz iskljucene greske... ja preporucujem bash E_ALL bash zato sto prikazuje i warninge i notice-ove, jer su i to potencialne rupe u programu...
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 14:21 - pre 263 meseci
jedno pitanje u vezi sa pear-om. To je biblioteka koja mora biti dodana u php.ini kao include path i mora biti na ciljnom serveru. Da li je moguce koristiti PEAR ukoliko ga admin ne voli?
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

dwarf
Beograd, Srbija

Član broj: 1328
Poruke: 336
*.yubc.net



Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 17:09 - pre 263 meseci
Ja sam imao isti problem kada sam nesto razvijao i jednostavno sam pogledao sors doticne klase i samo prekopirao sve foldere i fajlove koji su potrebni za istu da radi kako bi trebalo. Sve je radilo kao zmaj. Probaj tako.

Doduse, ovo je malo veca gnjavaza i nije toliko elegantno. Ali sta ces...

P.S.: Inace, vidim da su konacno doterali dokumentaciju za doticnu klasu...Ehehe...
 
Odgovor na temu

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
*.jagodina.beotel.yu

Sajt: www.lun.co.yu


Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 17:17 - pre 263 meseci
Hehe, Go! X baš to i mene interesuje jer su administratori obično nežna i fnia bića koja ne podnose nikakvu konverzaciju sem ako to nisu pohvale :)).
*************************************
 
Odgovor na temu

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
*.jagodina.beotel.yu

Sajt: www.lun.co.yu


Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 17:46 - pre 263 meseci
Uzgred, zaboravih da se zahvalim.

Uradio sam gore navedeno i sve radi kao pucka :)

Hvala gosn Zombi!
*************************************
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);09.09.2002. u 22:17 - pre 263 meseci
napisacu ipak svoju abstrakciju. treba mi za phplance, a moci cu da je koristim bilo gde onda.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.169.EUnet.yu

Sajt: www.bokica.com


Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);10.09.2002. u 01:04 - pre 263 meseci

ADODB again.
http://php.weblogs.com/ADODB



Connecting to the Database
Code:

include("adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect("localhost", "root", "password", "mydb");


Executing the SQL
Code:

$result = $db->Execute("SELECT * FROM employees");
if ($result === false) die("failed"); 

.
.
.
http://php.weblogs.com/adodb_tutorial
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);10.09.2002. u 04:35 - pre 263 meseci
Citat:
Go! X:
napisacu ipak svoju abstrakciju. treba mi za phplance, a moci cu da je koristim bilo gde onda.


ma pear moze da se koristi bilo gde.

ako bash neces da cackas/zavisish od admin-a, sve sto treba da uradish je da skinesh php sa sajta, izvadish odatle pear direktorijum (ili samo delove koje koristish), i iskopirash ga na server gde je tvoja aplikacija.

onda samo iskoristish ini_set() ( http://php.net/ini_set ) funkciju da postavish da include_path sadrzi pear dir, i gotovo.

ako ti se vec svidja pear, nema razloga da ga ne koristish. cak sta vise, pisaces kod koji ce (ako zatreba) drugi moci da nastavi da odrzava / dopunjuje...


sto se adodb-a tice, mozda je lepa klasa, ali je PEAR::DB ipak standardnija, i pisu je (izmedju ostalog) isti ljudi koji su napravili php ovako lepim jezikom kakav je...

ako bash ocesh, evo i tebi primera:

Code:

require_once "DB.php";
$dbh = DB::connect("mysql://localhost/baza");
if (DB::isError($dbh)) {
....die("greska: ".$dbh->getMessage());


i
Code:

$sth = $dbh->query("SELECT polje FROM tabela");
$row = $sth->fetchRow();
echo $row['polje'];


ovo je iz glave, ali bi trebalo da radi...
 
Odgovor na temu

dwarf
Beograd, Srbija

Član broj: 1328
Poruke: 336
*.yubc.net



Profil

icon Re: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);10.09.2002. u 08:14 - pre 263 meseci
ADODB je fin, ali meni nije bas otliko lep kao PEAR:B. Jednostavno me suvise podseca na ASP i to mi je malo depresivno...
 
Odgovor na temu

[es] :: PHP :: include("fajl_sa_funkcijama_za_rad_sa_bazom_podataka.inc.php);

[ Pregleda: 5426 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.