E' arrivata l'estate HOT! Sconti fino al 70% su tutti i corsi!
Davide Copelli WebSU

Accedere al database MySQL usando PDO o MySQLi

Articolo a cura di: Davide Copelli {ing}

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

WebStartUniversity
WebStartUniversity

Ricevi le anteprime dei nuovi corsi! Iscriviti Gratuitamente

Cliccando su Iscriviti, accetti le nostre condizioni d'uso e la politica sulla privacy

×