In questa lezione conclusiva vedremo insieme come è possibile far interagire le nostre pagine .php con i database MySql.
Per dovere di completezza non possiamo non ricordare che PHP è in grado di connettersi a diversi database server (MySql, MS Access, PostgreSql, Oracle, Microsoft Sql Server, Sybase,...) tuttavia noi ci limiteremo a vedere l'interazione con MySql che è senza dubbio la soluzione più comune e diffusa.
MySql è un database veloce e potentissimo in grado di gestire applicazioni con un elvato grado di criticità e, cosa non secondaria, è un software open source, liberamente scaricabile dal sito www.mysql.com.
Come abbiamo accennato nella lezione precedente PHP mette a disposizione dello sviluppatore diverse funzioni per interagire con i db MySql. Vediamo insieme le più importanti.
Per prima cosa vediamo come fa PHP a connetersi al MySql Server.
Allo scopo soccorre la funzione mysql_connect() che si utilizza con la seguente sintassi:
mysql_connect(server, utente, password);Ad esempio:
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die('Errore...');
Una volta stabilita la connessione è necessario selezionare uno specifico db sul quale lavorare. A questo scopo PHP ci fornisce la funzione mysql_select_db() da utilizzarsi con la seguente sintasi:
mysql_select_db(database, connessione);Ad esempio:
mysql_select_db('mio_database', $myconn) or die('Errore...');
Per prima cosa vediamo come è possibile recuperare dei dati presenti nel nostro database.mysql_query(query, connessione);Ad esempio:
$query = "SELECT * FROM tabella";
$result = mysql_query($query, $myconn) or die('Errore...');
Facciamo ora un esempio completo.
<?php
//Mi connetto al MySql Server
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die('Errore...');
//Mi connetto al database degli amici
mysql_select_db('database_degli_amici', $myconn) or die('Errore...');
//Imposto ed eseguo la query
$query = "SELECT nome, cognome, telefono FROM amici";
$result = mysql_query($query, $myconn) or die('Errore...');
//conto il numero di occorrenze trovate nel db
$numrows = mysql_num_rows($result);
//se il database è vuoto lo stampo a video
if ($numrows==0){
echo "Database vuoto!";
}
//Se invece trovo delle occorrenze...
else
{
//Avvio un ciclo for che si ripete per il numero di occorrenze trovate
for($x=0; $x<$numrows; $x++){
//Recupero il contenuto di ogni record rovato
$resrow = mysql_fetch_row($result);
$nome = $resrow[0];
$cofgnome = $resrow[1];
$telefono = $resrow[2];
//Stampo il risultato
echo "nome: <b>" . $nome . "</b><br/>";
echo "cognome: <b>" . $cognome . "</b><br/>";
echo "telefono: <b>" . $telefono . "</b>";
}
}
?>
Quello che abbiamo fatto qui sopra dovrebbe eservi abbastanza chiaro (ricordate la lezione sui cicli?)...Con INSERT INTO si inseriscono nuovi dati nel db, con UPDATE si aggiornano dei dati già presenti, con DELETE si cancellano dei dati.
Dal punto di vista di PHP queste operazioni non differiscono tra loro, l'unica cosa che cambia è la query che viene eseguita, ma questo discorso attine al linguaggio SQL.
Facciamo degli esempi:
Per INSERT INTO useremo:
$query = "INSERT INTO tabella VALUES('valore1','valore2','valore3')";
Per UPDATE useremo:
$query = "UPDATE tabella SET campo1='valore1', campo2='valore2', campo3='valore3' WHERE id = 1";Per DELETE useremo:
$query = "DELETE FROM tabella WHERE id = 1";Attenzione!
Facciamo un esempio di utilizzo di queste query; vediamo come cancellare con PHP un record dal nostro database MySQL:
<?php
//Mi connetto al MySql Server
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die('Errore...');
//Mi connetto al database degli amici
mysql_select_db('database', $myconn) or die('Errore...');
//Imposto ed eseguo la query
$query = "DELETE FROM tabella WHERE id = 1";
$result = mysql_query($query, $myconn) or die('Errore...');
?>
Per le altre operazioni basterà sostituire la query mantenendo inalterata la struttura del PHP.
| Corso Linux Guida completa al sistema open-source. A partire da 49 €. | |
| Corso MySQL Gestione del database open-source. A partire da 39 €. | |
| Corso PHP Corso completo per la creazione di siti Web dinamici. A partire da 49 €. |