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.