Collegarsi a un database con PDO
Cosa e PDO
Sezione intitolata “Cosa e PDO”PDO è uno strumento di PHP per comunicare con database diversi attraverso un’interfaccia comune.
Puoi pensarlo come un adattatore: il codice PHP usa PDO, che comunica con il database.
Dati di connessione
Sezione intitolata “Dati di connessione”Per collegarti servono:
- host, cioe dove si trova il database
- nome del database
- utente
- password
- charset, cioe il modo in cui vengono gestiti i caratteri
Primo collegamento
Sezione intitolata “Primo collegamento”<?php$dsn = "mysql:host=localhost;dbname=negozio;charset=utf8mb4";$utente = "root";$password = "";
$pdo = new PDO($dsn, $utente, $password);$dsn descrive il tipo di database e dove trovarlo. In questo esempio usiamo MySQL.
Gestire gli errori
Sezione intitolata “Gestire gli errori”Aggiungi opzioni per ricevere messaggi di errore chiari.
<?php$pdo = new PDO($dsn, $utente, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,]);ERRMODE_EXCEPTION fa lanciare eccezioni quando qualcosa va storto. FETCH_ASSOC restituisce le righe come array associativi.
Proteggere le credenziali
Sezione intitolata “Proteggere le credenziali”Non mettere password reali in file pubblici o condivisi. Nei progetti reali si usano variabili d’ambiente o file di configurazione esclusi dalla pubblicazione.
Verificare il collegamento
Sezione intitolata “Verificare il collegamento”<?phpecho "Connessione riuscita";Se il codice arriva a questa riga senza errori, PHP è riuscito a collegarsi.
Gestire un errore di connessione
Sezione intitolata “Gestire un errore di connessione”Una connessione può fallire per una password sbagliata, un database spento o un nome errato. Per gestire questi casi puoi usare try e catch.
<?phptry { $pdo = new PDO($dsn, $utente, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]);
echo "Connessione riuscita";} catch (PDOException $errore) { echo "Impossibile collegarsi al database";}Durante lo studio puoi leggere il messaggio tecnico dell’errore. In un sito pubblico mostra invece un messaggio generico e registra il dettaglio nei log.
Primo controllo con una query semplice
Sezione intitolata “Primo controllo con una query semplice”Dopo la connessione puoi provare una query semplice.
<?php$stmt = $pdo->query("SELECT 1");$risultato = $stmt->fetchColumn();
echo $risultato;Se vedi 1, PHP ha comunicato con il database e ha ricevuto una risposta.
Errore comune: confondere PDO con SQL
Sezione intitolata “Errore comune: confondere PDO con SQL”PDO non sostituisce SQL: è il mezzo con cui PHP invia istruzioni SQL al database e riceve risultati.