Jeg ville undersøge en klasse for at lave en simpel forespørgselsabstraktion eller en form for ORM-lib, der gør dette. En prøve ville være sådan her.
class Query {
function from($tbl){
return new Table($tbl);
}
}
class Table {
var $prefix = 'PBN_';
var $tblname = '';
function Table($name){
$this->tblname = $this->prefix.$name;
}
function select($cols, $where = false, $order = false, $limit = false){
$query = "SELECT {$cols} FROM {$this->tblname}";
if($where) $query .= " WHERE ".$where; //add where
if($order) $query .= " ORDER BY ".$order; //add order
if($limit) $query .= " LIMIT ".$limit; //add limit
return $query;
}
}
$q = new Query;
$results = mysql_query($q->from('products')->select('*'));
Dette er åbenbart ikke nær komplet eller sikkert. Bare et eksempel på, hvordan en abstraktionsklasse kunne fremskynde din sql og lave dine præfikser for dig.