Con PDO dovresti stare tranquillo...ma potrebbe capitarti che su un host non sia abilitato e quindi dover riscrivere tutto utilizzando mysql(i).
La cosa migliore sarebbe quella di lavorare, nella tua classe elenco, con un oggetto che non dipende dal driver che usi. Al volo mi verrebbe da fare qualcosa del tipo
Codice PHP:
class myPDODb{
public function connect();
public function insert($table, $fields, $values);
public function delete($table, $id);
public function find($table, $conditions, $limit, $order, $etc);
public function query($sql);
}
class myMysqliDb(){
public function connect();
public function insert($table, $fields, $values);
public function delete($table, $id);
public function find($table, $conditions, $limit, $order, $etc);
public function query($sql);
}
class model{
private $db;
public $table;
public function valiates();
public function beforeSave();
public function afterSave();
public getDb(){
// In base a come è configurato l'host, carico la classe giusta
// es: $this->db = new myPDODb();
}
public function insert($fields, $values){
// posso validare i dati prima di salvarli nel db
$this->validates();
// posso eseguire un azione prima di salvare. es hash di una password
$this->beforeSave();
// inserisco nel db, senza preoccuparmi di quale driver uso
$this->db->insert($this->table, $fields, $values);
// posso fare un'azione dopo il salvataggio
$this->afterSave();
}
public function delete($id){
...
}
}
class Elenco extends Model{
public $table = 'elenco';
public __construct(){
$this->getDb();
}
public function getCategoria(){
return $this->find(...);
}
}