====== sPDO una classe per PDO ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//03/07/2014 - 10:55//** \\ \\ [[https://github.com/pobfdm/spdo|Repository Git]] **sPDO** e' una semplice classe che consente di sviluppare con [[http://www.freemedialab.org/wiki/doku.php?id=programmazione:php:introduzione_a_pdo|PDO]] in maniera semplice e veloce. \\ La classe in questione non tende a nascondere i metodi e le funzioni del driver PDO (richiamabili mediante strutture pubbliche alla stessa) piuttosto ne aggiunge pochi altri per rendere il lavoro piu' veloce. ===== I metodi ===== La classe si presenta con i seguenti metodi pubblici: ^ Funzione membro ^ descrizione ^ | connect() | connette al db | | disconnect() | disconnette dal db | | execute($sql) | esegue una query | | nrows() | restituisce il numero di record di una select| | read($n, $column) | legge un campo da una select, $n è il numero di riga, $column è il nome della colonna | | lastInsertId() | restituisce l'ultimo id dell'ultimo record inserito tramite una insert | | GetDriverName() | restituisce una stringa con il nome del driver in uso (es. "mysql") | | addslashes($str) | quota correttamente le stringhe nelle insert e update in base al tipo di database. (mysql,sqlite,postgresql)| |isSelect($sql) | ritorna TRUE se la query è una select, false altrimenti| |quote($sql) | ritorna una stringa quotata per essere inserita in una query| |countRecordFromTable($table)|ritorna il numero di record di una tabella| ===== Mostrare il risultato di una select ===== include_once("lib/sPDO.php"); $mydb = new sPDO(); //mostriamo tutti i record di una tabella $mydb->connect(); if ( !$mydb->execute("select * from users ")) echo "problemi nella query
"; for ($i=1; $i<= $mydb->nrows(); $i++) { echo $mydb->read($i, "user") ." - ". $mydb->read($i, "pass") . "
" ; } $mydb->disconnect();
Da notare l'utilizzo di read(): **$mydb->read([numero riga], [nome campo])** . Le righe vengono numerate a partire da 1. ===== Inserimento di record ===== include_once("lib/sPDO.php"); $mydb = new sPDO(); //inseriamo qualche record $mydb->connect(); $sql="INSERT INTO `users` ( `user` ,`pass` , `type` ) VALUES ( 'utente' , '365816905f5e9c148e20273719fe163d' , 1 );" ; if ( !$mydb->execute($sql)) echo "problemi nella insert
"; $mydb->disconnect();
===== Eliminazione di record ===== include_once("lib/sPDO.php"); $mydb = new sPDO(); //cancelliamo qualche record $mydb->connect(); $sql="DELETE from `users` WHERE `id` >3;" ; if ( !$mydb->execute($sql)) echo "problemi nella delete
"; $mydb->disconnect();
===== Modifica di un record ===== include_once("lib/sPDO.php"); $mydb = new sPDO(); //modifichiamo un record $mydb->connect(); $sql="UPDATE `users` SET `user` = 'test0', `pass` = '098f6bcd4621d373cade4e832627b4f6' WHERE `id` =3;"; if ( !$mydb->execute($sql)) echo "problemi nella update
"; $mydb->disconnect();
===== Risultato di una query in una select html ===== function query2select($sql,$id,$field) { $ubb = new sPDO(); $ubb->connect(); $ubb->execute($sql); for ($i=1; $i<= $ubb->nrows(); $i++) { $res=$res.''; } $ubb->disconnect(); return $res; } La si utilizza così: echo query2select("select nome from miatabella","id","nome") la funzione riempira' la select di