Posted: 20.02.2006 23:53 Post subject: database abstraction layer
Koristite li dotične i zašto?
Gledam malo uokolo i ima puno oprečnih stajališta. Adodb mi se čini glomazan, no zato tu je adodb lite. Osim činjenice da olakšava prelazak sa jedne baze na drugu, ima li još koja prednost?
Jer iskreno, ne znam kada sam vidio neki host, a da je imao samo recimo postgres, a ne i mysql...
Posted: 21.02.2006 00:45 Post subject: Re: database abstraction layer
gog wrote:
Osim činjenice da olakšava prelazak sa jedne baze na drugu, ima li još koja prednost?
Pa sto nije to glavna funkcija database abstraction layera..
Koristim svoj, nikada nisam htio adodb niti njemu slicne..
Za mysql i postrgresql razlika je bila dok je mysql bio u 3.x verzijama, jos i 4.0.x verzija dok nisu dosle nove stvarcice koje suga (skoro) pa izjenscile sa postgresqlom.
Negje sam cito da se postgresql koristi za neke malo "jace" aplikacije..
_________________ FRENCH GUARD: No chance, English bed-wetting types.
I burst my pimples at you and call your door-opening request a silly thing, you tiny-brained wipers of other people's bottoms!Flikrac
retro_one dosta hvali ADO, kaže da je pouzdan i brz... ja mu vjerujem, ali sam ne koristim database abstraction već samo database access abstraction kojeg sam napisao jer u MySQL i Postgresu (na kojima jedino radim) vrijede isti query-i. Malo ima abstractiona kad se radi o dohvaćanju metapodataka o tablici i konvertiranja podataka izvučenih van, ali to je to.
Evo primjer API-a:
Code:
try {
$db = GDA::getConnection('psql://user:pass@localhost/dbname#utf-8');
$res = $db->query('SELECT * FROM tree ORDER BY lft');
// sad imam lijepi API, kao:
$res->numRows();
$res->fieldNames();
$res->toXML(); // vjerojatno najkorisnija funkcija
// idemo napravit loop kroz resultset:
foreach($res as $row){
// $row je sad običan array
$row['name'];
$row['email'];
}
} catch (Exception $e) {
// ako se nešto slučajno desilo, uhvati
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
unset($db); // poziva se destruktor i connection se zatvara
Praktički možeš dumpnut XML u 3 reda:
Code:
$db = GDA::getConnection('psql://user:pass@localhost/dbname#utf-8');
$res = $db->query('SELECT * FROM tree ORDER BY lft');
echo $res->toXML()->saveXML();
die;
Kad doradim klasu pošaljem je, samo se javi. Jedino ne ide ispod PHP5 a ti još nisi na njemu
OK, database access abstraction me u biti i zanima. Ne da mi se zafrkavati sa search&replace ukoliko ću htjeti nešto zavrtiti na postgresu.
BTW, tko kaže da sam još na 4-ci, počeo sam čitkarati php5 power programming i oduševio se, vidiš da već i stroj dedicated tražim A dan nakon kaj sam upogonio onaj php5 da radi sa 4-rkom bez mijenjanja ekstenzija mi je taman zatrebalo neka xml maniupulacija. SimpleXML rula
Kaj se ovog tiče, budeš ti više završio nešto od toga o čemu pričaš Zekam se..
Dakle ADOdb, mature paket izrazito pouzdan i brz, i jos kao bonus ima c library koji mozes koristiti kako ekstenziju za php.
Inace sam nacin pisanja kverija je nesto drugaciji...imas funkcije za sve problematicne dijelove sql-a, znaci format datuma, auto increment, select limit itd...moze vracati array ili objekt...uglavnom ja ga koristim vec godinama i izrazito sam zadovoljan.
ps. uspio sam prije nekih mjesec dana prebaciti jedan software s mysql-a na oracle bez problema (ok imao sam nekih sat vremena posla, dok sam neke sitnice postelao)
_________________ Just your average eccentric programmer.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum