Lezioni di PHP - Lezione 3 - Lavorare con il database MySQL.
Probabilmente pensi che sia troppo presto per iniziare la terza lezione parlando subito del lavoro con il database MySQL. Ma credimi, non è così. Studiare PHP come linguaggio di programmazione web senza imparare a lavorare con un database è come avere un computer senza Internet. Sì, puoi usarlo, ma non avresti accesso a nessuna informazione. Quindi stringiamo i denti e iniziamo a scrivere query SQL al database, anche se non sappiamo ancora nulla del linguaggio SQL.
SQL (Structured Query Language — “linguaggio di interrogazione strutturato”) è un linguaggio informatico universale utilizzato per creare, modificare e gestire dati in basi di dati relazionali. SQL si basa sulla manipolazione dei record in tabelle.
PHP può lavorare con molti tipi di database: MySQL, PostgreSQL, Oracle e molti altri. Noi impareremo a lavorare con MySQL, poiché la combinazione PHP + MySQL è una delle più popolari per la creazione di siti web. Inoltre, imparare a usare MySQL ti permetterà in futuro di lavorare facilmente anche con altri database, perché SQL è un linguaggio universale e la sua sintassi è praticamente la stessa in tutti i sistemi relazionali.
MySQL è un sistema di gestione di database libero (DBMS). È di proprietà della Oracle Corporation, che lo ha acquisito insieme a Sun Microsystems. È distribuito sotto licenza GNU General Public License oppure sotto licenza commerciale proprietaria.
Parleremo approfonditamente del linguaggio SQL in molte lezioni successive. Per ora iniziamo da qualcosa di semplice: la connessione al database. Creiamo un nuovo metodo per la nostra classe simpleCMS:
public function connectDB() { }
Questo ci permetterà di richiamare la connessione al database da qualsiasi parte del codice in cui esiste un oggetto della nostra classe. Comodo, vero?
Ci serviranno anche alcune variabili per il server MySQL, l’utente del database e il nome del database:
class simpleCMS { public $host = 'localhost'; public $username = 'root'; public $password = '';
Definiamo questi valori di default, nel caso dimenticassimo di impostarli. Io uso Denwer, quindi queste sono le impostazioni predefinite per MySQL. Se usi un hosting o un server dedicato, dovrai usare le credenziali del tuo database MySQL.
Ora utilizziamo la funzione mysql_connect() per creare la connessione a MySQL:
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); if (!$link) { die('Errore di connessione: ' . mysql_error()); } return $link; }
Vediamo come funziona la funzione mysql_connect(). Essa richiede tre parametri: il nome del server del database, l’utente e la password. La funzione die() serve per interrompere l’esecuzione e mostrare un messaggio di errore nel caso in cui la connessione non riesca. Le variabili $this->host, $this->username e $this->password sono proprietà della classe, che abbiamo già impostato di default, quindi non è necessario ridefinirle nel metodo.
La funzione mysql_connect() restituisce una variabile di connessione $link di tipo resource, simile a quella che rappresenta un file o una cartella. Dovremo quindi chiudere la connessione al termine del lavoro per liberare memoria. Il messaggio di connessione riuscita può essere omesso.
Ora richiamiamo il nostro metodo all’inizio del file index.php, subito dopo aver incluso il file della classe:
$obj = new simpleCMS(); // creiamo l’oggetto della classe di gestione $db_connection = $obj->connectDB();
Ogni volta che avremo bisogno del database, includeremo il file della classe, creeremo un oggetto e chiameremo il metodo di connessione. Come vedi, lavorare con i database non è complicato.
Così come creiamo la connessione, dobbiamo anche chiuderla al termine del lavoro. Usiamo la funzione mysql_close(). Non creeremo per ora un metodo separato per la chiusura (anche se sarebbe buona pratica farlo in futuro), ma aggiungeremo semplicemente il codice:
include_once('class/simpleCMS.php'); // includiamo il file della classe $obj = new simpleCMS(); // creiamo l’oggetto della classe di gestione $db_connection = $obj->connectDB(); // creiamo la connessione // qualche operazione con il DB mysql_close($db_connection); // chiudiamo la connessione
Penso di aver spiegato chiaramente. Nella prossima lezione scriveremo le nostre prime query MySQL. Se qualcosa non è chiaro, scrivimi nei commenti.