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