Lezioni di PHP - Lezione 3.1 - Lavorare con il database MySQL. Creazione delle tabelle.
Nella lezione precedente abbiamo creato la connessione con il database. In questa lezione creeremo le tabelle per il nostro futuro sito. Per iniziare, aggiungiamo il nome del database necessario nella classe simpleCMS:
class simpleCMS { // classe di gestione public $host = 'localhost'; // variabili per lavorare con il DB public $username = 'root'; public $password = ''; public $db = 'testDB';
Ora dobbiamo creare questo database sul nostro server MySQL. Se stai usando Denwer, puoi farlo tramite phpMyAdmin, che è incluso nel pacchetto. Apri phpMyAdmin e crea un nuovo database:
Ora che abbiamo configurato le impostazioni e creato il nuovo database, modifichiamo la connessione al server MySQL tramite PHP. Aggiorniamo il metodo di connessione al DB:
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); // connessione al server MySQL if (!$link) { die('Errore di connessione: ' . mysql_error()); } mysql_select_db($this->db) or die("Impossibile trovare il DB. " . mysql_error()); // selezioniamo il DB return $link; }
Se tutto è andato a buon fine, non dovrebbe apparire alcun messaggio. Ora creiamo la tabella. Aggiungiamo il metodo buildDB(), che verrà chiamato direttamente all’interno del metodo connectDB():
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); // connessione al server MySQL if (!$link) { die('Errore di connessione: ' . mysql_error()); } mysql_select_db($this->db) or die("Impossibile trovare il DB. " . mysql_error()); // selezioniamo il DB $this->buildDB(); // richiamiamo un metodo all’interno di un altro metodo della stessa classe return $link; } public function buildDB(){ }
Ora, a ogni connessione, nel metodo buildDB() possiamo verificare se tutte le tabelle sono presenti. Per farlo, invieremo una query al database:
public function buildDB(){ $sql = 'CREATE TABLE IF NOT EXISTS messages ( title VARCHAR(150), bodytext TEXT, created VARCHAR(100) )'; return mysql_query($sql); }
Vediamo ora come funziona questo codice.
Per prima cosa, scriviamo la query SQL in una variabile di tipo stringa e poi passiamo questa variabile alla funzione mysql_query(), che invia la richiesta al database.
La query SQL inizia con l’operatore CREATE TABLE, che serve a creare una tabella. Poi usiamo IF NOT EXISTS per controllare se la tabella messages esiste già o meno.
Tra parentesi tonde, dopo il nome della tabella, elenchiamo i campi che verranno creati insieme alla tabella: nel nostro caso title, bodytext e created. Dopo ogni nome di campo indichiamo il tipo di dato: VARCHAR(150) indica una stringa di massimo 150 caratteri, mentre TEXT è un campo di testo che permette di salvare articoli completi.
Ora, se salvi il file simpleCMS.php ed esegui index.php, verrà creata la tabella messages.
Utilizzeremo questa tabella nella prossima lezione. Se hai domande o errori, scrivili nei commenti.