Er det bare mig, eller er PHP's PostgreSQL-funktioner exceptionelt
dårligt lavet sammenlignet med PHP's MySQL-funktioner?
Jeg har brugt MySQL længe, og er først nu halvvejs ved at gå over til
PostgreSQL, men PostgreSQL-funktionerne er efter min mening slet ikke
så nemme og hurtige at arbejde med som MySQL-funktionerne. Et par
eksempler:
- Det er dødirriterende altid at skulle angive forbindelses-ID'et i
pg_exec og andre funktioner. I MySQL-funktionerne er forbindelses-ID'et
et valgfrit argument.
- Hvis man (som jeg) hører til dem, der bruger store bogstaver i
variabelnavne ("$toOrd" i stedet for "$to_ord"), så er man måske også
tilbøjelig til at bruge store bogstaver i SQL-kolonnenavne (f.eks.
"antalBesoeg"). Problemet er bare, at man med PostgreSQL-funktionerne
ikke kan skrive
echo $res["antalBesoeg"];
Man *skal* skrive kolonnenavnet med småt:
echo $res["antalbesoeg"];
(Nu har jeg lige undersøgt det, og det viser sig, at det ikke PHP's
skyld, men PostgreSQLs. Ikke desto mindre synes jeg, det er et
irriterende problem).
- I pg_fetch_* er man tvunget til at angive rækkenummer. Det giver
ekstra kode. For at gøre det hele værre skriver pg_fetch_* en
fejlmeddelelse, hvis man angiver et forkert rækkenummer.
(MySQL-versionen returnerer bare falsk). Det betyder, at man er tvunget
til at bruge snabel-a'et foran pg_fetch_*, hvis man vil skrive
funktionen direkte i løkken:
for ($i = 0; $res = @pg_fetch_array($query, $i, PGSQL_ASSOC); $i++) {
echo $res["by"];
}
Den tilsvarende MySQL-kode:
while ($res = mysql_fetch_assoc($query)) {
echo $res["by"];
}
Hvad gør jer, der bruger PostgreSQL? Bruger i PostgreSQL-funktionerne,
PEAR-funktionerne eller jeres helt egen klasse?
--
Jonas Koch Bentzen
http://understroem.dk/