include 'sql_templates.php';
if (mysql_query(sql_build('fetch_user_by_id', $id))) {
  ...
} else {
  ...
}

if (mysql_query(sql_build('search_all_users', array($group, $email_pattern))) {
  ...
} else {

...

}
 

// A suite of sql statements used throughout the system. Set up as sprintf
//  templates.

// This function runs the template through sprintf and passes any given
//  parameters.
function sql_build($template, $params) {
  global $sql_templates;
  if (isset($sql_templates[$template])) {
    // TODO: verify given parameter count matches params for template.
    if (is_array($params)) {
      $sql = vsprintf($sql_templates[$template], $params);
    } else {
      $sql = sprintf($sql_templates[$template], $params);
    }
    return $sql;
  }
  return false;
}

// Fetch a list of user details
$sql_templates['fetch_user_by_id'] = <<< ENDSQL
select
  id,
  username,
  fullname,
  email
from
  users
where
  id = %d
ENDSQL;
 
.... more templates defined below.... ----------------------------------------------