Una classe PHP per gestire le query con PDO

03/02/2013

Dato che a partire dalla versione 5.5 di PHP le MySQL functions saranno considerate deprecate per poi essere definitivamente rimosse con le release successive, se non lo si è fatto fino ad oggi sarà bene cominciare ad impratichirsi con le alternative disponibili come per esempio MySQLi e PDO; riguardo a quest'ultima potrebbe essere utile una classe in grado di utilizzare Prepared Statements e di eseguire i comandi previsti dalle query SQL

Nel caso specifico il sorgente proposto di seguito sarà quello di una semplice sottoclasse il cui compito è quello di estendere PDO ereditandone i metodi:

class Sub_PDO extends PDO {
  public function eseguiSQL($istruzione, $valori) {
    $esecuzione = $this->prepare($istruzione);
    if( isset($esecuzione) && $esecuzione->execute($valori) ) {
      $risultato = $esecuzione->rowCount();
      while( $esecuzione->fetch(PDO::FETCH_ASSOC) ) {
      }
    }
    return $risultato;
  }
};

Abbiamo quindi un metodo con visibilità public che procede innanzitutto con il Prepared Statement per poi provvedere all'esecuzione dell'istruzione sulla base dei compi coinvolti; nell'esempio seguente la classe verrà utilizzata nel completamento di un query per l'inserimento di valori in tabella

$obj = new Sub_PDO("mysql:host=localhost;dbname=rubrica",'root','');
define("INSERIMENTO", "INSERT INTO nominativi (nome,cognome) VALUES(?,?)");
$parametri = array("Mario", "Rossi");
$obj->eseguiSQL(INSERIMENTO, $parametri);

Naturalmente "INSERIMENTO" è soltanto un nome associato arbitrariamente alla costante che memorizza l'istruzione da eseguire, l'utilizzatore potrà scegliere una qualsiasi altra denominazione purché questa venga passata come primo argomento al metodo della sottoclasse.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home