Nell’articolo precedente abbiamo visto, tramite funzioni php, come aprire una connessione a un database di tipo mysql. Inoltre abbiamo analizzato nel dettaglio le sintassi per estrarre i record dal database, comprensive delle funzioni più utili.
In questo articolo vedremo il sistema per inserire un nuovo record (insert), modificare un record già presente nel database (update) o eliminarlo (delete) attraverso l’uso del php come linguaggio di programmazione.
Insert – Inserire un nuovo record in una tabella
1 2 |
$q="INSERT INTO `clienti` (`nome`, `citta`) VALUES ('Elisa Neri', 'Verona')"; $query=mysql_query($q, $db); |
Questa è la forma base da usare per inserire un nuovo record nella nostra tabella “clienti”.
Alcune annotazioni che dovrebbero essere chiare già dall’esempio: a ogni valore (campo del database) nella prima parentesi, corrisponde il relativo valore nella seconda parentesi. Questo significa che se invertissimo di posizione i riferimenti ai campi, dovremmo invertire di posizione anche i valori. Per esempio:
1 |
$q="INSERT INTO `clienti` (`citta`, `nome`) VALUES ('Verona', 'Elisa Neri')"; |
Inoltre, i campi che si autoincrementano (nel nostro caso “id”) possono essere tralasciati: il database ci penserà autonomamente a inserire il dovuto numero incrementale, prendendo l’ultimo presente e sommandovi 1.
Nel caso di inserimenti multipli, per esempio perché l’insert è all’interno di un ciclo while, ci sarà utile conoscere quanti record sono stati passati in rassegna. Per farlo ci basterà evocare la funzione mysql_affected_rows()
:
1 |
echo "aggiunti ".mysql_affected_rows()." record"; |
Update – Modificare un record presente nel database
1 2 |
$q="UPDATE clienti SET nome='Francesco Rossi' WHERE id=1"; $query=mysql_query($q, $db); |
Nell’esempio abbiamo modificato il record con id=1, sostituendo il valore del campo nome con “Francesco Rossi”. La clausola where funziona esattamente come per l’insert
, per cui rimando all’articolo precedente per i dettagli.
In questo caso abbiamo modificato un unico campo, ma è possibile modificare più campi di uno stesso record all’interno di un’unica query. Se per esempio dovessimo modificare anche la città:
1 |
$q="UPDATE clienti SET nome='Francesco Rossi', citta='Genova' WHERE id=1"; |
Alla fine di questa query non avremmo più un Mario Rossi abitante a Milano, ma un Francesco Rossi abitante a Genova.
Attenzione: se eliminate la clausola where, saranno affetti tutti i record della tabella clienti, per cui vi ritroverete i record aventi tutti lo stesso valore nel campo “nome” e nel campo “citta”.
Anche in questo caso, con la funzione mysql_affected_rows()
avremo il numero totale di record modificati.
Delete – Eliminare un record dal database
Infine, occupiamoci della sintassi per eliminare un record dal database:
1 2 |
$q="DELETE FROM clienti WHERE id=1"; $query=mysql_query($q, $db); |
In questo caso, elimineremo dal database il record con id=1.
La clausola where
è la stessa dell’insert e, anche in questo caso, si usa la funzione mysql_affected_rows()
per recuperare il numero di record eliminati con la query.
Esiste, anche qui, un sistema per eliminare tutti i record della tabella clienti
(da usare con attenzione, visto che una volta eseguita la query non c’è possibilità di ritorno):
1 |
$q="DELETE * FROM clienti"; |