Binder des valeurs sous certaines conditions en POO
Bonjour,
je me mets au MVC POO et dans mon modèle général, je vais créer toutes les fonctions dont l'utilité est redondante à travers mon application.
Elle est d'être finie évidement mais je prends le problème au cas par cas.
Avec mon code ci-dessous, je désire créer un condition pour binder certaines données. Est possible avec le code créé ? Ou je dois crée une autre fonction.
J'estime que cela ne sert à rien de binder toutes les données quand elles ne viennent pas d'un formulaire. Je me trompe ou je m'y prends comme un pied?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
class model{
private $fields = '*';
private $table = '';
private $where = '';
private $and = '';
private $limit = '';
private $order = '';
private $order_direction = 'DESC';
private $stmt;
private $d = array();
public function getExecute(){
return $this->stmt->execute();
}
public function find($data = array()){
if(isset($data['fields'])){
$this->fields = $data['fields'];
}
$this->table = $data['table'];
if(isset($data['where'])){
$this->where = ' WHERE '.$data['where'];
}
if(isset($data['and'])){
$this->and = ' AND '.$data['and'];
}
if(isset($data['limit'])){
$this->limit = ' LIMIT '.$data['limit'];
}
if(isset($data['order'])){
$this->order = ' ORDER BY '.$data['order'].' '.$order_direction;
}
$this->stmt = Db::getInstance()->prepare('SELECT '.$this->fields.'
FROM '.$this->table.$this->where.
$this->and.$this->order.$this->limit.'');
$this->getExecute();
return $this->stmt->fetchAll(PDO::FETCH_OBJ);
}
} |
Exemple de requête
Code:
1 2 3 4 5 6 7 8 9
|
$model = new model();
$sql = $model->find(array(
'table'=>'users',
'where'=>'u_login="admin"' // donnée brute mais sera bindé
));
foreach($sql as $row):
echo $row->u_login.' - '.$row->u_id_level.'<br>';
endforeach; |
Merci d'avance de vos réponses.
David