Nie wiem dlaczego podchodzicie do tego w taki sposób że chłopak sam ma tworzyć zapytania, nie lepiej zaproponować koledze przejście na programowanie obiektowe, na początek klasy modeli w połączeniu z prostym PDO. PDO posiada lepsze "zabezpieczenia" przed sql injection niż ty sam jesteś w stanie wymyślić.
Rozwiąż to w ten sposób że tworzysz sobie klasę odpowiadającej tabelce w bazie z odopowiednimi metodami i atrybutami czyli:
class mojaTableka{
/**
$var PDO
*/
public static $_insertSql = 'INSERT INTO mojaTabela (kolumna1,kolumna2,...) VALUES (:kolumna1,:kolumna2,...)'; .
.
.
public $kolumna1;
public $kolumna2;
public $kolumna2;
.
.
.
'kolumna1' => PDO::PARAM_STR,
.
.
.
);
public function __set($key,$val){
$this->$key = $value;
}
}
public function __get($key){
return $this->$key;
}
}
public static function insert
(mojaTableka
$obiekt){ try{
$prep = self::$_connection->prepare(self::$_insertSql);
foreatch(self::$params as $key => $val){
$prep->bondParam(':'.$key,$obiekt->$key,$val);
}
return $prep->execute();
}catch(Exception $e){
return false;
}
}
public static function update
(mojaTabelka
$obiekt){
}
public static function dell
(mojaTableka
$obiekt){
}
public static function get
($where){
}
public function save(){
if($this->IDENTYFIKATOR !== NULL){
mojaTablela::update($this);
}
else{
mojaTablela::insert($this);
}
}
}
Pisane z ręki mogą być błędy, ale zamysł jest prawidłowy. Jeśli wybierzesz moje rozwiązanie na pewno postaram się pomóc.