----------------------------------------------
index.php
----------------------------------------------
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 {
...
}
----------------------------------------------
sql_templates.php
----------------------------------------------
// 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....
----------------------------------------------