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

Reply via email to