PHP e MYSQL
Stefano Floris, Versione fabbraio 2012a
Realizzare programmi gestionali in ambiente WEB con HTML e PHP
Pubblicato su www.troppocurioso.altervista.org
Lo so, adesso non vedete l'ora di sviluppare una pagina WEB che visualizza l'elenco dei libri
della biblioteca.
Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze
Stefano Floris, 2011www.troppocurioso.altervista.org
Questa opera è sotto licenza creativa (di tipo copyleft)
Attribuzione-Non commerciale-Condividi allo stesso modo Generico.
Prendete nota delle funzioni PHP che
imparerete ad usare.
PHP e MYSQL
Prendete nota delle funzioni PHP che
imparerete ad usare.
PHP e MYSQL
A proposito, sapete cosa sono le funzioni?.
y=f(x)
PHP e MYSQL
Esatto, avete capito bene. Il concetto è mutuato dalla
matematica.
y=f(x)
PHP e MYSQL
Esatto, avete capito bene. Il concetto è mutuato dalla
matematica.
f è la funzione.
Piu' semplicemente vi dirò che una funzione è quasi
come un comando.
PHP e MYSQL
Piu' semplicemente vi dirò che una funzione è quasi
come un comando.
PHP e MYSQL
Voi, per esempio, se siete arrivati fin qui conoscete
sicuramente i comandi echo, if, for ecc. ecc.
Ecco, la funzione, rispetto al comando produce un risultato che
viene generalmente salvato in una variabile.
PHP e MYSQL
Ecco, la funzione, rispetto al comando produce un risultato che viene generalmente salvato in una
variabile.
PHP e MYSQL
Piu' precisamente si dice che la funzione assume un valore (che può essere salvato in una variabile).
PHP e MYSQL
// Comando: Echo “benvenuto nel mio sito!”;
// Funzione: $potenza = pow($valore,2);
Ecco un comando e una funzione a confronto. echo
è un comando, pow una funzione.
PHP e MYSQL// Per connettersi a MySQL// mysqli_connect()//// Per aprire un database specifico// mysqli_select_db()// Per lanciare un comando SQL// mysqli_query()// Per prendere i dati del record// corrente e portarli in un // vettore// mysqli_fetch_array()// Per liberare le memoria// mysqli_free_resul()// Per chiudere la connessione MySQL// mysqli_close()
Per accedere a MYSQL e poterlo
interrogare, PHP mette a
disposizione una sequenza di
funzioni.
Vi elenco qui le piu' importanti.
Prendete nota:
PHP e MYSQLVediamo adesso come poter usare
le funzioni elencate.
Le prenderemo in esame una per volta in versione piu' semplificata
per noi.
Se desiderate vedere l'elenco completo di comandi e funzioni PHP e tutti i parametri che le
funzioni ricevono fate riferimento al manuale on line.
http://it2.php.net/manual
PHP e MYSQLPartiamo dalla prima da usare
// Per connettersi a MySQL.// mysqli_connect(<server>,<utente>,<password>,<nomedb>)//// La funzione riceve quattro parametri:// <server> → l'indirizzo del server (p.e 172.16.0.24)// <utente> → il nome dell'utente registrato su MySQL// <password> → la password associata all'utente// <nomedb> → il nome del database da usare
// La funzione restituisce:// a) FALSE (valore di tipo boolean) se la cvonnessione// non è avvenuta correttamente // (server irraggiungibile, utente e // password errati o altri problemi)// b) un valore numerico univoco della connessione
PHP e MYSQL...$db è la variabile che uso per salvare il risultato della chiamata
alla funzione...// *****************************************************// Imposto le variabili che indicano i // parametri del database// *****************************************************$db_host = "172.16.0.13"; // Server MySQL$db_user = "baldassini"; // Nome utente $db_password = "baldassini"; // Password $db_name = "baldassini"; // Nome del database
// ****************************************************// Connessione al motore DataBase usando le variabili// impostate sopra// e la funzione di php mysqli_connect()// *******************************************************$db = mysqli_connect($db_host, $db_user, $db_password);
PHP e MYSQL...$db è la variabile che uso per salvare il risultato della chiamata
alla funzione...
// ******************************************************// La variabile $db è utilizzata per verificare // l'esito della connessione// La funzione die interrompe la procedura// ******************************************************if ($db == FALSE) { die ("Errore nella connessione. Verificare i parametri di accesso");}
echo "connesione a MYSQL avvenuta <BR>";
PHP e MYSQLUna volta stabilita la connessione è necessario aprire il database scelto.
// Per connettersi a MySQL.// mysqli_select_db(<idconnessione>,<nomedatabase>)//// La funzione riceve due parametri:// <idconessione> → il codice della connessione// ricevuto dalla funzione// mysqli_connect// // <nomedatabase> → il nome del db da usare//// La funzione restituisce:// a) FALSE (valore di tipo boolean) se l'apertura // del db non è andata in porto// b) TRUE (valore di tipo boolean) se l'apertura// è andata in porto correttamente
PHP e MYSQLIn questo caso non salvo il valore della funzione (perché
non mi serve successivamente) e controllo l'esito dell'operazione direttamente con la se.
// ******************************************************// Mi collego al database che mi interessa// con la funzione mysqli_select_db() che restituisce // un valore boolean// vero = connessione avvenuta// falso = connessione con problemi// ******************************************************
if ( mysqli_select_db($db, $db_name) == FALSE){ die ("Errore nella selezione del database. Verificare i parametri");}echo "<BR>";echo "fatta connessione db <BR>";
PHP e MYSQLNotate il fatto che la variabile $db, viene usata d'ora in poi per tutte le chiamate alle altre
funzioni...
$db serve infatti ad indicare quale connessione al
DBMS utilizzare.
...if ( mysqli_select_db($db, $db_name) == FALSE)..
PHP e MYSQLAdesso serve il comando SQL da inviare al DBMS. Scrivo
il comando come testo e lo salvo in una variabile (qui chiamata $query)
// ******************************************************// Desidero recuperare i dati da una tabella,// uso la SELECT// per farlo costruistro' il comando e lo metto in // una variabile di stringa//// ******************************************************$query = "SELECT * FROM FORNITORI";
PHP e MYSQLIl comando SQL salvato in una variabile viene inviato alla
funzione mysqli_query che ha lo scopo di mandare il comando al DBMS chiedendogli di eseguirlo.
// ******************************************************// Lancio la query con la funziona PHP mysqli_query() // che chiede due parametri// 1)il primo è la variabile di connessione al database,// 2)il secondo la stringa del comando sql. //// La funzione restituisce un risultato che salvo // in una variabile che// utilizzo per verificare se tutto è andato // come mi aspettavo// Se result vale false, allora non ho ottenuto risultati// ******************************************************$result = mysqli_query($db, $query);if ($result) == FALSE { die ("nessun dato in archivio");}
PHP e MYSQLIl risultato del comando SELECT è come un foglio
elettronico: un insieme di righe e colonne. E' salvato in una variabile di tipo speciale (array) a cui abbiamo dato il nome
$result.
// ******************************************************// Adesso costruisco una tabella (<TABLE>) delle// dimensioni giuste per ospitare i dati ricevuti// // PHP ha la funzione mysqli_fetch_array() che serve // per leggere il record corrente// Quando è a fine file restituisce false// ******************************************************echo "<BR>";echo "<TABLE BORDER=1>";
PHP e MYSQL$result contiene dunque una tabella (recordset che si
scorre riga per riga). mysqli_fetch_array è la funzione che scorre il recordset, restituisce il record corrente e
sposta il puntatore al record successivo.
// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)){ echo "<TR>";
// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";
// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";
PHP e MYSQL$record è invece una variabile di tipo array che contiene
tutti i campi del record corrente.Per poter utilizzare il contenuto occorre indicare la posizione nel vettore. La
prima posizione (0) è il contenuto del primo campo.
// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)){ echo "<TR>";
// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";
// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";
PHP e MYSQLPotevo scrivere anche così:
// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)== TRUE){ echo "<TR>";
// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";
// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";
PHP e MYSQLTerminato l'output del risultato della query (comando SQL)
libero la memoria ($result) e chiudo le connessioni con il DBMS.
// Distrugge il record set // e libera la memoria utilizzata per gestirlo mysqli_free_result($result); // Chiude la connessione mysqli_close($db);?></body></html>
28
FineFine