Lezione 28 Lavoriamo con Access parte prima. Lavoriamo con Access parte prima. In queste tre ultime lezioni, vedremo come creare degli script lato server che si appoggino a file MDB di Access. Naturalmente, si dà per scontato che voi sappiate generare un database in Access. In questa lezione vengono presentate le funzioni ODBC di PHP, che permettono di colloquiare con qualsiasi database che abbia i driver ODBC installati sul sistema. Quindi, se il vostro database mdb ha una connessione DSN di sistema o DSN utente, è possibile interfacciarsi ad esso con PHP tramite le funzioni ODBC. Creiamo un DSN per il nostro file mdb. Se avete accesso diretto alla macchina server (ad esempio, la vostra macchina di prova), dovete creare una connessione DSN al file mdb che avete precedentemente creato. Ad esempio, ipotizziamo di aver a disposizione un file mdb chiamato impiegati.mdb. Per creare un collegamento ODBC a questo file, andate in Pannello di controllo e ciccate su ‘ Origini dati ODBC (32 bit) ‘ . In Fig-1 è mostrata la finestra che appare dopo aver fatto doppio click sull’ icona : Fig-1 – Finestra in cui è possibile aggiungere i DSN. A questo punto, potete inserire un DSN d’ utente ciccando sul bottoncino ‘ Aggiungi…’. Dopo aver ciccato, dovrebbe comparire la seguente finestrella di dialogo (Fig-2) : Domenico Nappo – Domenico Surace - Manuali.Net © Tutti i diritti riservati Creiamo un DSN per il nostro file mdb. Fig-2 : Per creare una nuove origine dati bisogna scegliere il driver appropriato. A questo punto, visto che abbiamo intenzione di lavorare su un file Access, scegliamo il driver Microsoft Access Driver (*.mdb). Ciccando sul tasto Fine, la prossima finestrella dovrebbe essere la seguente : Fig-3 – Inseriamo un nome per l’ origine dei dati (sarà l’ identificativo che utilizzeremo in PHP per connetterci e scegliamo il file a cui associare il DSN creato. A questo punto, nella casella Nome origine dati: immettiamo una stringa di identificativo, ad esempio impiegati. Poi bisogna ciccare sul tasto seleziona nella sezione Database: e scegliere il file .mdb generato da Access precedentemente (ad esempio impiegati.mdb). Ciccando su OK, la nostra connessione ODBC è già pronta. Domenico Nappo – Domenico Surace - Manuali.Net © Tutti i diritti riservati Lezione 28 Le funzioni ODBC Le funzioni ODBC Se avete appreso bene le lezioni dedicate a MySQL e avete sperimentato un poco con le funzioni mysql_*, non avete altro da imparare. Il funzionamento e la logica è la stessa, tranne per alcune differenze. Supponiamo che la struttura del database creato sia la seguente : Nome Campo ID Nome Cognome Reparto Tipo Campo intero autoincrementante Campo testo Campo testo Tipo Byte Ecco il codice che visualizza l’ intero contenuto della tabella : <?PHP /* esempio connessione ODBC Corso di PHP */ $conn=odbc_connect("impiegati",'','') or die(odbc_error()); $query="SELECT * FROM Impiegati"; $res=odbc_exec($conn,$query) or die (odbc_error()); while (odbc_fetch_row($res)) { $id=odbc_result($res,'ID'); $nome=odbc_result($res,'nome'); $cognome=odbc_result($r es,'cognome'); $rep=odbc_result($res,'reparto'); print "id = $id<br>"; print "nome = $nome<br>"; print "cognome = $cognome<br>"; print "reparto = $rep<br><hr>"; } odbc_close($conn); ?> Per connetterci al database ODBC si utilizza la funzione odbc_connect(), la quale accetta come argomento il nome del DSN creato precedentemente, oltre al nome utente e alla password settati. Se la connessione non ha bisogno di essere effettuata con un accesso autorizzato, bisogna inserire comunque delle stringhe, anche se vuote, poiché la funzione accetta questi argomenti come obbligatori. Per eseguire una query ed ottenere un recordset, bisogna usare la funzione odbc_exec(), a cui vengono passati come argomento l’ handle di connessione e la stringa che descrive la query. Questa funzione restituisce un recordset. Questo recordset viene passato alla funzione odbc_fetch_row(), che estra un record. La differenza con la funzione mysql_fetch_row() è che quest’ ultima restituisce un vettore riga, mentre la funzione odbc si occupa di far avanzare il puntatore al record successivo e restituisce soltanto TRUE e FALSE, a seconda se ci sono altri record da leggere o si è arrivati alla fine del recordset. Per estrarre un campo dal record corrente ci affidiamo alla funzione odbc_result(), che accetta come argomenti il risultato dell’ esecuzione della query (quindi $res) e una stringa corrispondente al nome del campo da estrarre. Infine, per chiudere una connessione basta eseguire una chiamata alla funzione odbc_close(), passando come argomento l’ identificativo $conn precedentemente ottenuto all’ atto della connessione al database. Domenico Nappo – Domenico Surace - Manuali.Net © Tutti i diritti riservati Creiamo un DSN per il nostro file mdb. Come vedete, in PHP le funzioni dedicate all’ interfacciamento con i database sono molto simili tra loro. Potete scorrere le funzioni riportate nel manuale ufficiale e notare che la sintassi e gli argomenti passati alle funzioni sono quasi identiche fra loro. Nella prossima lezione parleremo sempre di PHP e Access, ma stavolta li facciamo dialogare senza connessione DSN (in modalità dsnless). ? 2002 By Domenico Nappo, Domenico Surace e Manuali.net L’ autore declina ogni responsabilità per eventuali (quanto improbabili) danni recati al sistema per l’ uso degli script di esempio riportati in questa guida. Domenico Nappo – Domenico Surace - Manuali.Net © Tutti i diritti riservati