© Marco Olivo <me@olivo.net>, luglio 2001

DATABASES

Dopo aver visto alcune utili funzioni che ci permetteranno di essere pił flessibili nella scrittura dei nostri scripts, vediamo finalmente come ci possiamo interfacciare ad un database tramite il PHP, ragione per la quale il PHP è così tanto amato ed utilizzato.
Il PHP dispone di un supporto eccezionale verso la maggior parte dei DBMS (database management system) commerciali e non e permette di interfacciarsi ad essi in maniera semplice e - soprattutto - parametrizzabile. Questo significa che potremo (anzi: da buoni programmatori dovremo!) scrivere una serie di funzioni utili per la nostra applicazione, inserirle in una classe (probabile argomento futuro) o in un file ad hoc ed utilizzare questi nuovi prototipi per scrivere il nostro codice. Questo ci permetterà di dover cambiare solo quelle funzioni che si interfacciano al database un giorno che dovessimo per una qualunque ragione cambiare il nostro DBMS in backend, risparmiandoci bachi nel codice, tempo e fatica, e quindi soldi.

In questa panoramica utilizzeremo le chiamate a MySQL, diffusissimo DBMS noto per la sua leggerezza e velocità. Tale DBMS non è adatto ad ogni tipo di applicazioni, anzi è molto ristretto (e proprio per questo veloce), ma ben si adatta ai compiti normalmente svolti e svolgibili su web. I pił svezzati tra voi si scordino triggers, stored procedures e subselects. Con MySQL sono un lontano ricordo: un prezzo da pagare per la velocità offerta rispetto agli altri DBMS.

CONNESSIONE E DISCONNESSIONE DA UN DATABASE

Come per i files, anche per i databases è necessario instaurare una connessione al DBMS e, per fare i "programmatori puliti" in perfetto stile UNIX, rilasciarla quando essa non risulta pił necessaria.
Una premessa è però necessaria: dal momento che in un DBMS possono essere immagazzinati dati di varia natura e provenienti magari da diversi dipartimenti (nel caso di un'azienda) o da diversi utenti (tipico nel mondo del webhosting) è necessario che vi sia un metodo basato sull'autentifica degli utenti in base a credenziali (nome utenti e password principalmente, ma anche nome di host)
Senza scendere troppo nei dettagli vi ricordiamo soltanto che sarà necessario avere il nome utente e la password prima di potersi collegare ad un database.

$link = mysql_connect($host, $user, $pass); è la chiamata per instaurare una connessione (non persistente) ad un DBMS. Questa funzione, analogamente alla chiamata fopen() vista in un articolo precedente, ritorna un descrittore, qui chiamato "link" che identifica la connessione. Dopo aver fatto le nostre query e le nostre transazioni tramite le chiamate che vedremo successivamente utilizzeremo la chiamata mysql_close($link); per liberare le risorse e chiudere correttamente la nostra connessione.

Questo non è l'unico modo per instaurare una connessione con MySQL, nè necessariamente il pił performante. Tuttavia può essere a volta l'unico metodo funzionante (dipende essenzialmente dalla configurazione del server) e quindi sarà l'unico illustrato. Chi è interessato può provare a cercare sulla Reference Guide del PHP la funzione "mysql_pconnect"