Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 14 di 56
  • livello intermedio
Indice lezioni

Connessione a MySql con PDO

Impariamo creare delle connessioni, anche persistenti, ad un database MySQL tramite l'istanza di un oggetto PDO in PHP.
Impariamo creare delle connessioni, anche persistenti, ad un database MySQL tramite l'istanza di un oggetto PDO in PHP.
Link copiato negli appunti

Istanza della classe PDO

La connessione a un database MySQL si realizza creando un'istanza della classe PDO: il costruttore si aspetta 3 parametri, uno obbligatorio e due facoltativi. Il parametro obbligatorio è il DSN (Data Source Name), i parametri facoltativi, almeno formalmente, sono username e password di accesso al nostro database server.

Supponendo che il database server sia in locale e il database al quale vogliamo accedere si chiami "corso" il codice necessario alla connessione sarà il seguente:

$hostname = "localhost";
$dbname = "corso";
$user = "nome_utente";
$pass = "password";
$db = new PDO ("mysql:host=$hostname;dbname=$dbname", $user, $pass);

La variabile $user conterrà lo username di accesso e la variabile password la relativa password di autenticazione.

Possiamo inserire la creazione della connessione al database in un costrutto try-catch in modo da gestire eventuali errori (PDOException) di connessione, bloccare l'esecuzione del codice se la connessione stessa non va a buon fine e visualizzare la tipologia di eccezione individuata ($e->getMessage()):

try {
    $hostname = "localhost";
    $dbname = "corso";
    $user = "nome_utente";
    $pass = "password";
    $db = new PDO ("mysql:host=$hostname;dbname=$dbname", $user, $pass);
} catch (PDOException $e) {
    echo "Errore: " . $e->getMessage();
    die();
}

Se viceversa la connessione andasse a buon fine avremmo a disposizione un'istanza dell'oggetto PDO.

Chiusura della connessione

Per chiudere la connessione sarà sufficiente distruggere l'oggetto creato, ma bisognerà accertarsi di aver chiuso precedentemente tutte le istanze dell'oggetto stesso:

$db = null;

Nel caso in cui di dovesse omettere la chiusura esplicita della connessione PHP procederà alla sua chiusura soltanto alla fine dell'esecuzione dello script.

Creazione di una connessione persistente

In alcune circostanze potrebbe essere opportuno avere a disposizione delle connessioni persistenti, ovvero delle connessioni che non vengono distrutte al termine dell'esecuzione dello script ma memorizzate in cache per poter essere riutilizzate da un altro script che impiega le medesime credenziali. Lo scopo è quello di migliorare le prestazioni dato che lo script non deve riaprire una connessione al database server ogni volta che questa diventa necessaria.

Per creare una connessione persistente dovremo modificare il nostro codice per la connessione in questo modo:

$db = new PDO("mysql:host=$hostname;dbname=$dbname", $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));

Ti consigliamo anche