WallPapers

Amazon Books

Driver Image Banner 728 x 90

 

Una sessione di esempio con MySQL

Ora analizzeremo in dettaglio l'implementazione delle fasi di connessione, interazione e chiusura che abbiamo illustrato in precedenza utilizzando come RDBMS di riferimento il già citato MySQL.

Possiamo tranquillamente affermare che tale procedimento è analogo per ciascun motore di database supportato dal PHP.

Per prima cosa è necessario verificare di avere le seguenti informazioni:

  • Nome dell' host (hostname) del server MySQL
  • nome utente a cui è consentito accedere al database (username)
  • password per l'utente
  • il nome del database a cui vogliamo accedere

una volta essere venuti a conoscenza di queste informazioni, memorizziamole in appositi variabili

 

// parametri per la connessione al database MySQL

$my_db_host = “localhost” ;

$my_db_name = “dbprova”; # il nome del database a cui vogliamo accedere

$my_db_user = “pippo”;

$my_db_password = “passworddipippo”;

A questo punto possiamo iniziare la nostra sessione di lavoro con MySQL. Le funzioni di MySQL che utilizzeremo per implementare le fasi sopra viste saranno:

  • mysql_connect() - per stabilire la connessione con il server MySQL;
  • mysql_select_db() - per selezionare il database con cui lavorare;
  • mysql_query() - per inviare comandi SQL al server ;
  • mysql_fetch_row() - per leggere il risultato delle query inviate con mysql_query();
  • mysql_close() - per chiudere la connessione.

Gli argomenti di mysql_connect() sono tre hostname, username e password e sono tutti e tre facoltativi; i valori predefiniti sono localhost per hostname e la stringa vuota per user e password.

In caso di successo della connessione la funzione mysql_connect(), restituisce un intero positivo che ha il significato di identificativo della connessione e che viene usato dalla funzione mysql_query() e da mysql_close() per referenziare il database da accedere.

La restituzione di un valore nullo (che come sappiamo in PHP è equivalente a FALSE) indica il fallimento della connessione.

Esempio:

// provo a connettermi al database

$conn = mysql_connect($my_db_host,$my_db_user, $my_db_password) or die (“non mi posso connettere al server mysql $my_db_name);

Il passo successivo è la selezione del database su cui andremo ad operare. La funzione PHP mysql_select_db() assolve questo compito, essa prevede due parametri il nome del database che si vuole aprire e l'identificativo di connessione risultato della funzione mysql_connect().

Il secondo argomento è facoltativo: se non viene specificato è utilizzato l'identificativo dell'ultima connessione aperta; se anche questo non è disponibile viene chiamata mysql_connect() utilizzando i valori di default (che ricordiamo essere localhost, “”,””, per cui difficilmente, se noi abbiamo pensato alla sicurezza , questi valori ci daranno modo di accedere ad alcunché).

Il risultato restituito dalla funzione è vero in caso di successo, falso altrimenti.

Esempio

// selezione del database

$conn = mysql_select_db($my_db_name,$conn)

or die(Impossibile selezionare il database $my_db_name);

Dopo aver stabilito la connessione con il server MySQL e selezionato il database su cui lavorare, possiamo finalmente interagire con il DBMS utilizzando il linguaggio SQL,vedremo in seguito come.

Terminata la nostra sessione di lavoro con MySQL dobbiamo chiudere la connessione con il server.

Usiamo la funzione mysql_close().

Esempio:

// chiusura della connessione con il server MySQL

mysql_close($conn);

L'unico argomento della funzione mysql_close() è l'identificativo della connessione ottenuto con la chiamata precedente della funzione mysql_connect().

Al termine dell'esecuzione dello script, PHP provvederà a chiudere tutte le connessioni eventualmente rimaste aperte, per cui non è strettamente necessario chiuderle esplicitamente.

I passi presentati fino a questo punto forniscono un ossatura generale: ogni script PHP che dovrà utilizzare un database inizierà con le fasi di connessione e selezione del database e terminerà con la chiusura della sessione.