Daniel Convissor wrote:
On Wed, Apr 02, 2008 at 12:14:08PM -0400, Steve Manes wrote:
I generally wrap all database calls in API functions specific to the
task being performed, i.e. get_patient_referrals_list(),
put_private_transport_segment(), update_clinic_demographic(). That way
the logging is specific to the task and any specialized processing that
needs to be done to the data can be done in one place.
That's good. That still doens't obviate the need to have those functions
then call one central function that actually runs the query.
I've never had much need to generalize the database API functions more
than that if I'm already wrapping them inside dedicated application API
functions. I always parameterize the queries so the only potentially
reusable components would be:
$result = pg_query_params($db, $sql, $array);
if (!$result) {
return array(false, pg_last_error($db));
}
$rows = array();
while ($row = pg_fetch_assoc($result)) {
$rows[] = $row;
}
return array(true, $rows);
But that's limiting as well because some queries are expected to return
only one row, some return many rows, some result sets are enumerated,
some are hashes, some need to return the exit code of a stored
procedure, not the database function. Also, I like the function to
return database errors branded with the __FUNCTION__ or __CLASS__ name
where the error occurred.
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php