In quest'articolo vedremo come interagire con il database Mysql.
Supponiamo di aver creato un database di nome "db_esempio"
e una tabella di nome "tab_esempio" in cui vogliamo
memorizzare dei dati riguardanti alcune città italiane.
I campi della tabella saranno quindi città,regione,numero
abitanti.
Per non lavorare con numeri molto grandi in questo esempio userò,
riguardo il campo numero abitanti, valori non reali. Andremo a
vedere le operazioni di inserimento dati,cancellazione dati e
aggiornamento dati, ossia le operazioni più frequenti con
un database.
INSERIMENTO DATI
Voglio inserire nella tabella tab_esempio i seguenti
dati inerenti la città di Milano. Creiamo una pagina di
nome inserisci.php:
città: città1, regione:
regione1, abitanti: 100
Prima di poter inserire i dati nella tabella del database devo
connettermi al database:
$myconn=mysql_connect($host,$user,$password) or die("Errore
di connessione");
$db_name="db_esempio";
mysql_select_db($db_name,$myconn);
mysql_connect serve a connettersi al database e prende come argomenti
$host,$user e $password che sono le variabili dove precedentemente
avrete memorizzato i valori di connessione al database Mysql e
associamo quest'istruzione a $myconn, che quindi è il nome
della connessione. mysql_select_db seleziona invece il database
con il quale volete operare e prende come argomenti il nome del
database e il nome della connessione. Ora andremo ad inserire
i dati nella tabella:
$query_sql="INSERT INTO tab_esempio VALUES('città1','regione1','100');";
$result=mysql_query($query_sql,$myconn);
Nella variabile $query_sql è stata memorizzata la query
sql che inserisce i dati nel database mentre l'istruzione mysql_query
esegue la query, infatti come primo argomento prende la query
sql e come secondo argomento il nome della connessione al database
.L'inserimento dei dati nel database è stato effettuato
LETTURA DATI
Ora supponiamo di voler leggere tutti i dati precedentemente
memorizzati nel database. Costruiamo una pagina di nome leggi.php
con il seguente codice:
$myconn=mysql_connect($host,$user,$password) or die("Errore
di connessione");
$db_name="db_esempio";
mysql_select_db($db_name,$myconn);
$query_leggi="SELECT * FROM tab_esempio";
$result=mysql_query($query_leggi,$myconn);
$numero_righe=mysql_num_rows($result);
for ($i=0;$i<$numero_righe;$i++)
{
$array_result=mysql_fetch_row($result);
$citta=$array_result[0];
$regione=$array_result[1];
$abitanti=$array_result[2];
echo $citta."|".$regione."|".$abitanti."<br>";
}
Andiamo a commentare il codice. Come in precedenza mi connetto
al database contenente i dati poi alla variabile $query_leggi
assegno una query sql che mi permette di selezionare tutti i record
nel database. I risultati della query li memorizzo nella variabile
$result. Successivamente tramite l'istruzione mysql_num_rows si
va a trovare quanti record sono stati trovati e il numero viene
memorizzato nella variabile $numero_righe. A questo punto si va
a fare un ciclo for che va ad analizzare ogni record trovato e
i singoli campi di ogni record (città, regione e abitanti)
vengono memorizzati nell'array $array_result. Dal momento che
i campi sono tre andiamo a memorizzare ogni singola informazione
contenuta nell'array $array_result nelle variabili $citta, $regione
e $abitanti e visualizziamo i dati su schermo tramite l'istruzione
echo.
Quindi con i file inserisci.php e leggi.php siamo in grado di
inserire e leggere i dati contenuti nel database. Ora andiamo
a vedere come avviene la cancellazione di un record.
CANCELLAZIONE RECORD
Supponiamo di avere memorizzato nel database una gran
quantità di città con relativa regione e numero
di abitanti. Si vuole cancellare il record relativo alla città
di nome Città1. Si va a scrivere il seguente codice:
$myconn=mysql_connect($host,$user,$password) or die("Errore
di connessione");
$db_name="db_esempio";
mysql_select_db($db_name,$myconn);
$query_canc="DELETE * FROM tab_esempio WHERE città='città1'";
$result=mysql_query($query_canc,$myconn);
L'unica cosa da commentare è la query che questa volta
seleziona il record in cui il campo città contiene città1.
Si sarebbe potuto selezionare il record anche per regione o per
numero di abitanti, basta cambiare la relativa query come fatto
per il campo città.