Dati in rete Appunti
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 MySQL 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.
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:
Connessione al DB e scrittura risposta in formato HTML Connessione al database MySQL, 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)
Dettaglio fasi: richieste Il browser Web effettua una richiesta di una pagina in formato PHP (fase 1) Il server Web individua il file .php e attiva l’interprete PHP per eseguirlo (fase 2) Lo script PHP contiene in comandi SQL per collegarsi al database MySQL e invia le richieste con comandi SQL (fase 3)
Dettaglio fasi: risposte Il server MySQL risponde restituendo i dati richiesti (fase 4) Lo script PHP scrive questi dati in una pagina Web e la restituisce al Web server (fase 5) Il server Web invia all’utente la pagina richiesta in formato HTML (fase 6)
Connessione al DB Per collegarsi al database lo script PHP deve eseguire il comando mysql_connect La sintassi completa è $host rappresenta l’indirizzo IP o il nome del server su cui è in esecuzione MySQL $username è il nome dell’utente $passsword è la password dell’utente La funzione restituisce un oggetto $conn nel caso in cui la connessione abbia successo mysql_connect($host, $username, $password);
Connessione al server MySQL $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);
Connessione al database MySQL Sintassi Esempio mysql_select_db(nomedatabase, connessione); $accesso=mysql_select_db($db_nome, $conn); if (!$accesso) { die(‘Accesso al database non riuscito: ‘ . mysql_error()); }
Esempio completo di connessione <? php $host = ‘nome server‘; $username = ‘mario_rossi‘; $password = ‘abcd1999‘; $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 :::: ?>
Selezione di dati Dopo avere aperto la connessione, si possono eseguire comandi SQL Per recuperare le singole righe della selezione si esegue il comando fetch_array Il valore di ritorno della funzione fetch_array è un array associativo in cui ogni elemento corrisponde ad un campo del record $sql="SELECT * FROM $tab_nome"; $result = mysql_query($sql); $row = mysql_fetch_array($result);
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 };
Pagina PHP (leggitabella.php) $host = ‘nome server‘; $username = ‘mario_rossi‘; $password = ‘abcd1999‘; $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 "<br />"; }; ?>