Bekijk Volledige Versie : database-onafhankelijkheid in php?
Hallo. Ik ben van plan een webapplicatie te bouwen in PHP, mijn eerste
"grote" PHP-project. Die applicatie wil ik (als het ooit af komt) ook
kunnen verkopen, dus ik zou graag vanaf het begin willen zorgen dat-ie
NIET van een specifieke database afhankelijk is. Dus of er nu MySQL onder
zit, PostgreSQL of Oracle mag niet uitmaken. Nu kan ik zelf natuurlijk wel
een soort bibliotheek gaan bouwen, maar iemand heeft dat vast al eens
gedaan. En waarschijnlijk beter dan ik zou kunnen :)
Dus: wat gebruikt een mens daar nu voor?
De ODBC functies lijken "aardig", maar ODBC komt volgens mij op Unix/Linux
servers nauwelijks voor (al bestaat het wel).
En wat is de manier om te dealen met de verschillende SQL-dialecten?
Ergens een tabel aanleggen waar de verschillende statements uit gevist
kunnen worden neem ik aan?
Als iemand me hierover een beetje bij kan lichten, graag.
Warden Dave
08/11/05, 22:45
"nmp" <address@is.invalid> wrote:
> Hallo.
Dag,
<knip>
> dus ik zou graag vanaf het begin willen zorgen dat-ie NIET van
> een specifieke database afhankelijk is. Dus of er nu MySQL
> onder zit, PostgreSQL of Oracle mag niet uitmaken.
<knip>
> Dus: wat gebruikt een mens daar nu voor?
Je zou eerst tot je kunnen nemen: http://nl3.php.net/pdo (dit gaat dus al
over een 'database access layer') Zie ook gerelateerde verhalen, als:
http://www.oracle.com/technology/pub/articles/php_experts/otn_pdo_oracle5.html
en
http://forums.mysql.com/read.php?52,29058,29058 etc.
groet,
WD
Op Tue, 08 Nov 2005 22:36:06 +0100, schreef Warden Dave:
> Je zou eerst tot je kunnen nemen: http://nl3.php.net/pdo (dit gaat dus
> al over een 'database access layer') Zie ook gerelateerde verhalen, als:
> http://www.oracle.com/technology/pub/articles/php_experts/otn_pdo_oracle5.html
> en
> http://forums.mysql.com/read.php?52,29058,29058 etc.
Okee, ga ik doen. 't Is wel veel en ik moet er het koppie even bij houden,
dus dat wordt iets voor morgenochtend :)
Maar begrijp ik nu goed dat er onder PHP 4 nog niet veel mogelijk is?
On Tue, 08 Nov 2005 22:29:19 +0100, nmp <address@is.invalid> wrote:
> Hallo. Ik ben van plan een webapplicatie te bouwen in PHP, mijn eerste
> "grote" PHP-project. Die applicatie wil ik (als het ooit af komt) ook
> kunnen verkopen, dus ik zou graag vanaf het begin willen zorgen dat-ie
> NIET van een specifieke database afhankelijk is.
http://wiki.cc/php/PDO, nog niet echt volop in gebruik maar ik denk
dat het best wat gaat worden. Dat neemt dan iig de connecties voor
zijn rekening.
> En wat is de manier om te dealen met de verschillende SQL-dialecten?
> Ergens een tabel aanleggen waar de verschillende statements uit gevist
> kunnen worden neem ik aan?
Ik denk dat je beter een opzet kunt maken waarbij je een api voor
jezelf aanmaakt. Bijvoorbeeld:
createUser($params)
delUser($params)
Vervolgens schrijf je voor PDO per dbserver de juiste SQL. Dit heeft
als voordeel dat je geoptimaliseerde SQL krijgt per database server.
> Als iemand me hierover een beetje bij kan lichten, graag.
Graag gedaan.
Hans
--
<iemand>
iemand heeft een gat gevonden in pdp's access.db? bel cnn
http://blacklist.kernelnewbies.nl
Warden Dave
08/11/05, 23:30
"nmp" <address@is.invalid> wrote:
> Op Tue, 08 Nov 2005 22:36:06 +0100, schreef Warden Dave:
>> Je zou eerst tot je kunnen nemen: http://nl3.php.net/pdo
>> (dit gaat dus al over een 'database access layer')
<knip>
> Okee, ga ik doen. 't Is wel veel en ik moet er het koppie even bij
> houden, dus dat wordt iets voor morgenochtend :)
>
> Maar begrijp ik nu goed dat er onder PHP 4 nog niet veel mogelijk is?
Welnu, je hoeft de PDO interface ook onder PHP4 niet mis te lopen. Je bent
dan in ieder geval klaar voor de toekomst. Zie bijv.
http://pear.php.net/package/MDB2 en
http://www.phpclasses.org/browse/package/2572.html etc. (Niet allemaal
volledig compatibel; maar toch.)
groet,
WD
Tjerk Wolterink
09/11/05, 00:00
nmp wrote:
> Hallo. Ik ben van plan een webapplicatie te bouwen in PHP, mijn eerste
> "grote" PHP-project. Die applicatie wil ik (als het ooit af komt) ook
> kunnen verkopen, dus ik zou graag vanaf het begin willen zorgen dat-ie
> NIET van een specifieke database afhankelijk is. Dus of er nu MySQL onder
> zit, PostgreSQL of Oracle mag niet uitmaken. Nu kan ik zelf natuurlijk wel
> een soort bibliotheek gaan bouwen, maar iemand heeft dat vast al eens
> gedaan. En waarschijnlijk beter dan ik zou kunnen :)
>
> Dus: wat gebruikt een mens daar nu voor?
>
Er zijn verschillende vormen van database-onafhankelijkheid,
als je echt voor 100% database onafhankelijk wilt zijn is het
beste zelf een interface te schrijven, en deze dan te implementeren
voor de database-implementaties.
Als je bijvoorbeeld in de toekomst alles wilt opslaan in een
xml-database of een andere database technologie is het
gewoon een kweste van een nieuwe implementatie van de interface schrijven.
Je kunt ook database-onafhankelijkheid krijgen op sql-database
niveau, hoe dit precies in php zit weet ik niet, maar ik heb
al eens van php Pear DB ofzo gehoord.
Overigens vraag ik me af of php wel een geschikte taal is
om applicaties te schrijven die zulke eisen hebben.
In java bijvoorbeeld is er al een complete JDBC technologie
waardoor je vanzelf database onafhankelijk aan het programmeren bent.
Op Tue, 08 Nov 2005 23:55:14 +0100, schreef Tjerk Wolterink:
> Er zijn verschillende vormen van database-onafhankelijkheid,
Akkoord.
> als je echt voor 100% database onafhankelijk wilt zijn is het beste zelf
> een interface te schrijven, en deze dan te implementeren voor de
> database-implementaties.
Ik vroeg me dus af of die er niet al was, kant-en-klaar :)
> Als je bijvoorbeeld in de toekomst alles wilt opslaan in een
> xml-database of een andere database technologie is het gewoon een kweste
> van een nieuwe implementatie van de interface schrijven.
Nu ga je er van uit dat ik ueberhaupt van de relationele database af wil,
en dat is niet zo. Ik zie ze trouwens ook nog niet gauw verdwijnen.
> Je kunt ook database-onafhankelijkheid krijgen op sql-database niveau,
> hoe dit precies in php zit weet ik niet, maar ik heb al eens van php
> Pear DB ofzo gehoord.
Ik ook, moet ik ook nog meer over lezen. Maar is volgens mij ook niet
specifiek alleen voor database-toegang, wel?
> Overigens vraag ik me af of php wel een geschikte taal is om applicaties
> te schrijven die zulke eisen hebben.
>
> In java bijvoorbeeld is er al een complete JDBC technologie waardoor je
> vanzelf database onafhankelijk aan het programmeren bent.
Java is voor mij nog steeds hokus pokus :)
Op Tue, 08 Nov 2005 22:08:20 +0000, schreef Hans:
> On Tue, 08 Nov 2005 22:29:19 +0100, nmp <address@is.invalid> wrote:
>> Hallo. Ik ben van plan een webapplicatie te bouwen in PHP, mijn eerste
>> "grote" PHP-project. Die applicatie wil ik (als het ooit af komt) ook
>> kunnen verkopen, dus ik zou graag vanaf het begin willen zorgen dat-ie
>> NIET van een specifieke database afhankelijk is.
>
> http://wiki.cc/php/PDO, nog niet echt volop in gebruik maar ik denk dat
> het best wat gaat worden. Dat neemt dan iig de connecties voor zijn
> rekening.
Warden Dave kwam er ook al mee, jij bent de tweede. Dus dat PDO moet ik
zeker eens goed gaan bekijken.
>> En wat is de manier om te dealen met de verschillende SQL-dialecten?
>> Ergens een tabel aanleggen waar de verschillende statements uit gevist
>> kunnen worden neem ik aan?
>
> Ik denk dat je beter een opzet kunt maken waarbij je een api voor jezelf
> aanmaakt. Bijvoorbeeld:
>
> createUser($params)
> delUser($params)
>
> Vervolgens schrijf je voor PDO per dbserver de juiste SQL. Dit heeft als
> voordeel dat je geoptimaliseerde SQL krijgt per database server.
In die richting zat ik dus ook te denken, maar dan zonder "PDO".
Een andere oplossing waar ik aan dacht is bijv. SQL statements in include
bestanden: if($db=="mysql") include("mysql_statements.inc.php");
(en die statements zou ik dan in mijn simplisme hebben gevoerd aan een PHP
odbc-functie die de query laat uitvoeren - tot ik me bedacht dat odbc
helemaal niet zo'n goed idee is)
>> Als iemand me hierover een beetje bij kan lichten, graag.
>
> Graag gedaan.
Dank je. Ik heb weer e.e.a. om over te denken. Maar eerst naar bed nu :)
Op Tue, 08 Nov 2005 23:21:19 +0100, schreef Warden Dave:
> "nmp" <address@is.invalid> wrote:
>> Maar begrijp ik nu goed dat er onder PHP 4 nog niet veel mogelijk is?
>
> Welnu, je hoeft de PDO interface ook onder PHP4 niet mis te lopen. Je bent
> dan in ieder geval klaar voor de toekomst. Zie bijv.
> http://pear.php.net/package/MDB2 en
> http://www.phpclasses.org/browse/package/2572.html etc. (Niet allemaal
> volledig compatibel; maar toch.)
Gaan we ook bekijken, bedankt!
In mijn zoektocht kwam ik het volgende artikel tegen, dat wel een aardig
overzicht geeft. Misschien nog nuttig voor iemand anders hier:
<http://www.phpbuilder.com/columns/ian_gilfillan20050906.php3>
nmp wrote:
> In mijn zoektocht kwam ik het volgende artikel tegen, dat wel een aardig
> overzicht geeft. Misschien nog nuttig voor iemand anders hier:
>
> <http://www.phpbuilder.com/columns/ian_gilfillan20050906.php3>
AdoDb is erg populair bij open source applicaties
Op Wed, 09 Nov 2005 18:36:11 +0100, schreef Juliette:
> nmp wrote:
>> In mijn zoektocht kwam ik het volgende artikel tegen, dat wel een
>> aardig overzicht geeft. Misschien nog nuttig voor iemand anders hier:
>>
>> <http://www.phpbuilder.com/columns/ian_gilfillan20050906.php3>
>
> AdoDb is erg populair bij open source applicaties
Ik heb er vandaag e.e.a. over kunnen lezen. Het begint me inderdaad te
bevallen. Moet nog een beetje testen ermee.