Dati in rete Appunti 1 Laccesso ai database
Dati in rete Appunti 1
L’accesso ai database SQL in PHP • PHP estende le funzionalità di un Web server, mentre SQL è un programma server che si occupa della gestione di basi di dati. • In un sito web i dati risiedono in un database sul server gestito da My. SQL e, ogni volta che un utente ne fa richiesta, questi dati vengono recuperati e mostrati nelle pagine web realizzate sul server tramite i tag del linguaggio HTML e inviate al browser sul client. 2
Interazione client-server • Le due parti dell’applicazione WEB , lato client e lato server, si collegano usando gli script in linguaggio PHP che svolgono i seguenti compiti: 3
Connessione al DB e scrittura risposta in formato HTML • Connessione al database My. SQL, invio dei comandi SQL e acquisizione delle risposte (fasi 2, 3 e 4) • Scrittura dei dati ricevuti dal database all’interno di pagine Web in formato HTML, in modo che siano interpretate dal browser (fasi 5 e 6) 4
Dettaglio fasi: richieste 1. Il browser Web effettua una richiesta di una pagina in formato PHP (fase 1) 2. Il server Web individua il file. php e attiva l’interprete PHP per eseguirlo (fase 2) 3. Lo script PHP contiene in comandi SQL per collegarsi al database My. SQL e invia le richieste con comandi SQL (fase 3) 5
Dettaglio fasi: risposte 1. Il server My. SQL risponde restituendo i dati richiesti (fase 4) 2. Lo script PHP scrive questi dati in una pagina Web e la restituisce al Web server (fase 5) 3. Il server Web invia all’utente la pagina richiesta in formato HTML (fase 6) 6
Connessione al DB • Per collegarsi al database lo script PHP deve eseguire il comando mysql_connect • La sintassi completa è mysql_connect($host, $username, $password); – $host rappresenta l’indirizzo IP o il nome del server su cui è in esecuzione My. SQL – $username è il nome dell’utente – $passsword è la password dell’utente • La funzione restituisce un oggetto $conn nel caso in cui la connessione abbia successo 7
Connessione al server My. SQL $conn=mysql_connect($host, $username, $password); if (!$conn) { die(‘Errore durante la connessione: ‘. mysql_error()); } echo (‘Connessione effettuata con successo’); • Per chiudere una connessione si esegue il comando mysql_close($conn); 8
Connessione al database My. SQL • Sintassi mysql_select_db(nomedatabase, connessione); • Esempio $accesso=mysql_select_db($db_nome, $conn); if (!$accesso) { die(‘Accesso al database non riuscito: ‘. mysql_error()); } 9
Esempio completo di connessione <? php $host = ‘nome server‘; $username = ‘mario_rossi‘; $password = ‘abcd 1999‘; $db_nome = ‘negozio_online‘; $tab_nome = ‘clienti‘; $conn=mysql_connect($host, $username, $password); if (!$conn) { die(‘Errore durante la connessione: ‘. mysql_error()); } $accesso=mysql_select_db($db_nome, $conn); if (!$accesso) { die(‘Accesso al database non riuscito: ‘. mysql_error()); } //lettura dei dati dalla tabella : : ? > 10
Selezione di dati • Dopo avere aperto la connessione, si possono eseguire comandi SQL $sql="SELECT * FROM $tab_nome"; $result = mysql_query($sql); • Per recuperare le singole righe della selezione si esegue il comando fetch_array $row = mysql_fetch_array($result); • Il valore di ritorno della funzione fetch_array è un array associativo in cui ogni elemento corrisponde ad un campo del record 11
Iterazione sui dati • Dopo avere recuperato i dati, per esaminare le righe si utilizza una struttura di ripetizione while come la seguente while($row = mysql_fetch_array($result)) { // operazioni sulla riga }; 12
Pagina PHP (leggitabella. php) <? php $host = ‘nome server‘; $username = ‘mario_rossi‘; $password = ‘abcd 1999‘; $db_nome = ‘negozio_online‘; $tab_nome = ‘clienti‘; $conn=mysql_connect($host, $username, $password); if (!$conn) die(‘Errore durante la connessione: ‘. mysql_error()); $accesso=mysql_select_db($db_nome, $conn); if (!$accesso) die(‘Accesso al database non riuscito: ‘. mysql_error()); //lettura dei dati dalla tabella $sql="SELECT * FROM $tab_nome"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { // operazioni sulla riga echo $row["Cognome"]. " ". $row["Nome"]. " ". $row["Citta'"]; echo " "; }; 13 ? >
- Slides: 13