PHP Tutorial

Accedere al database MySQL usando PDO o MySQLi

Articolo a cura di: Davide Copelli{ing} - Fondatore di Video-Corsi.co

Facebook

Uno dei più popolare database per lavorare con PHP è sicuramente MySQL, ma come saprai meglio di me, questo non è l'unico database esistente sul mercato, quindi in alcuni casi, potresti avere la necessità di interfacciarti con altri database. Accade frequentemente che uno stesso programma, possa avere la necessità di interrogare prima un database MySQL e poi un altro database, per esempio MSSQL, Oracle, PostgreSQL, SQLite etc.

Insomma, invece di imparare a memoria le tipologie di stringhe di connessione di ognuno di questi, potresti usare un'interfaccia unica, che prende il nome di estensione PDO, che è l'acronimo di PHP Data Objects, che con poche modifiche al codice, ti permetta di creare N versioni della stessa applicazione per differenti tipologie di database.

Come ben sai, per interfacciarti e gestire i dati provenienti da un database MySQL, PHP offre diverse estensioni che puoi scegliere liberamente a seconda del'applicazione PHP che intendi costruire. Ogni estensione ha i propri vantaggi e svantaggi, che non elencherò qui, ma una tra le più usate, e quella da preferire per lo sviluppo di applicazioni PHP dalla 5 in poi (e a partire dalla versione 4.1.3 di MySQL), è sicuramente MySQLi, che ha sostituito la classica estensione MySQL.

La lettera "i" finale sta per improved, e tra le migliorie introdotte c'è la possiibilità di usare entrambe le notazioni procedurali o ad oggetti, il supporto per le transazioni, le store procedure, e la possibilità di creare query con multiple istruzioni SQL.

Il tipico codice da usare per l'interfacciamento con il database, e l'invio di una query di lettura dati dalla ipotetica tabella "utenti" è di questo tipo:

Connettere database MySQL con MySQLi (stile ad oggetti)

$dbh = new mysqli('127.0.0.1', 'user', 'pass', 'scuola');
$res = $dbh->query("SELECT * FROM utenti");

o scritto nella classica forma procedurale:

Connettere database MySQL con MySQLi (stile procedurale)

$dbh = mysqli_connect('127.0.0.1', 'user', 'pass', 'scuola');
$res = mysqli_query($dbh, "SELECT * FROM utenti");

Le stesse righe di codice, con poche semplici modifiche, possono essere usate sfruttando l'estensione generica PDO, che nel caso di accesso ad un database MySQL, saranno:

Connettere database MySQL con PDO

$dbh = new PDO('mysql:host=127.0.0.1;dbname=scuola', 'user', 'pass');
$res = $dbh->query('SELECT * FROM utenti');

Come puoi osservare le tre sintassi sono sostanzialmente identiche, e sono davvero poche le modifiche da fare per adattare un'applicazione scritta usando MySQLi (procedurale o ad oggetti) ad una che sfrutta PDO.

Altri esempi di accesso a popolari database con PDO, li puoi trovare qui sotto:

Connettere database SQLite con PDO

$dbh = new PDO('sqlite:/tmp/scuola.db');
$res = $dbh->query('SELECT * FROM utenti');

Per maggiori informazioni, consulta la pagina ufficiale su PDO documentazione


Davide Copelli{ing} - Fondatore di Video-Corsi.coDavide Copelli {ing} - Mi occupo di Web Marketing, Email Marketing, SEO, Programmazione, dal 2001, quando ho fondato la mia società di consulenza DCOP. Nel 2003 ho fondato il primo portale in Italia di e-learning sulla programmazione web, tramite VideoCorsi (Video-Corsi.com), molto prima della nascita di YouTube e del fenomeno "video". Sono "Chief Digital Media Planner" di GreeniTop.com, di cui sono co-fondatore.

Ricevi le novità della DCAcademy! Iscriviti Gratuitamente

NB: Ogni MasterClass è curata e prodotta dal fondatore del portale (ing. Copelli) e dal suo team!

La tua email è al sicuro. Potrai cancellarti definitivamente con un click e in ogni istante. Odiamo lo spam!

×