Godt valg mht til PHP5.
Med hensyn til PEAR har det nogle dejlige færdige klasser til database abstraktion. Læs evt flg. guide:
http://www.razor.dk/php/guider/pear-db/
M.V.H.
Loke Dupont aka colde
Ok, lige med hensyn til SQL abstraktion har jeg selv prøvet med en lille klasse som skulle være til at adaptere til forskellige former for SQL da man ikke skal skrive queries selv, men blot kalder en funktion som så sammensætter queryen.
Altså har jeg en abstrakt klasse
Udfra den abstrakte klasse har jeg så min mysqlklasse som f.eks. indeholder funktionen
array[] select($fields, $tables, $required = "", $order = "", $limit = "")
hvor man så bare laver et string array i fields, tables og order, medmindre der kun er et element så kan man bare angive en string, og string i resten. Så sammensætter select selv querien og udfører den og så returnerer den et array som du vil få med følgende kode
while($row = mysql_fetch_assoc($result)){
$return[] = $row;
}
Så det eneste der egentlig er tilbage at skrive klasser der kan gøre det samme til andre databaser end mysql. udgangspunktet for argumenterne vil være, så det passer ind i en mysql query, så hvis en given databases syntaks er anderledes end mysqls så er det op til programmøren der har skrevet den givne klasse at få fikset det så det passer ind.
Udover det så har jeg en klasse der sørger for at oprette f.eks. mysql klassen der og bruge den på alle funktionerne (f.eks. select). Den arver også fra min abstrakte klasse. Denne klasse håndterer derudover også exceptions fra den klasse som den har oprettet et objekt af.
Men min klasse vil jeg f.eks. kunne gøre sådan her:
$db = new DB("mysql", "localhost", "bruger", "kodeord", "database");
$result = $db->select("*", "mintabel", "id > 8", "id", 20);
$numrows = $db->numRows();
echo "Der er $numrows rækker i resultatsættet\\n";
foreach($result as $row){
print_r($row);
}
Der er selvfølgelig også funktioner til, insert, update og delete. Og der vil blive tilføjet flere løbende som der vil blive brug for dem.
Men er du interesseret i at være med?
I hvert fald ser jeg frem til at udvikle det forum, og jeg har også en del ideér til det allerede, og det skal nok gøre godt med flere
.
Mvh
Kaare