Mano a mano che si procederà con gli esempi proposti in questa guida le procedure necessarie per interagire con MySQL tramite la libreria PDO diventeranno sempre più chiare; questo per via del fatto che in molti casi il codice da utilizzare per svolgere le diverse operazioni sarà in linea di massima il medesimo, ciò che varierà saranno le istruzioni SQL passate al DBMS.
A conferma di quanto appena detto, in questo capitolo verrà affrontato il passaggio relativo alla creazione di una tabella da inserire nel database "nominativi" precedentemente generato; si noterà quindi come la sintassi necessaria a tal scopo non sia particolarmente dissimile da quella già utilizzata per la creazione dello stesso DB.
Nel caso specifico verrà creata una tabella denominata "contatti" strutturata in tre campi:
- id: identificatore univoco numerico intero auto-incrementale non nullo della lunghezza di massimo 4 cifre che funge anche da chiave primaria;
- nome: campo alfanumerico VARCHAR non nullo della lunghezza di massimo 30 caratteri;
- cognome: campo alfanumerico VARCHAR non nullo della lunghezza di massimo 40 caratteri;
Prima di introdurre il sorgente sono opportune alcune indicazioni, si invita quindi ad osservare con attenzione le parti relative alla definizione dei parametri di connessione e all’istanza dell’oggetto PDO:
<?php
/*
blocco dei parametri di connessione
*/
// nome di host
$host = "localhost";
// nome del database
$db = "nominativi";
// username dell'utente in connessione
$user = "mrwebmaster";
// password dell'utente
$password = "...";
/*
blocco try/catch di gestione delle eccezioni
*/
try {
// stringa di connessione al DBMS
$connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
// impostazione dell'attributo per il report degli errori
$connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// creazione e popolamento della tabella
$crea_tb = $connessione->exec("CREATE TABLE IF NOT EXISTS contatti (
id int(4) NOT NULL AUTO_INCREMENT,
nome varchar(30) NOT NULL,
cognome varchar(40) NOT NULL,
PRIMARY KEY (id)
)");
// chiusura della connessione
$connessione = null;
}
catch(PDOException $e)
{
// notifica in caso di errore nel tentativo di connessione
echo $e->getMessage();
}
?>
All’interno del blocco dei parametri di connessione, come i più attenti avranno notato, è stata modificata la variabile $db grazie al fatto che disponiamo già di un database sul quale operare.
$db = "nominativi";
Tale variabile, passata come argomento alla stringa per l’istanza alla classe PDO, permetterà di effettuare due operazioni simultaneamente, cioè quella relativa alla creazione della connessione con MySQL e quella necessaria per la selezione del database (nel nostro caso, appunto, l’archivio denominato "nominativi") all’interno del quale generare la tabella desiderata.
Per quanto riguarda l’operazione di creazione della tabella in senso stretto, abbiamo utilizzato ancora una volta il metodo exec passando tra le parentesi tonde una query CREATE TABLE…
Ora che si dispone di un database e di una tabella completa di campi per la memorizzazione dei dati, si potrà passare alla fase successiva, cioè quella relativa all’inserimento di record in tabella tramite istruzioni SQL basate su INSERT.