![]() |
|
Interazione tra Php ed Ms Access
Concesso in esclusiva a MrWebmaster.it - E' vietata la pubblicazione senza espresso consenso del proprietario
Struttura del database di prova Per l'implementazione di qualche esempio pratico creeremo il file Access database.mdb composto dalla sola tabella utenti, a sua volta composta dai campi id (Contatore), nome (Testo) e cognome (Testo). Posizionate il database sul vostro server Web personale, Apache o EasyPHP che sia, ad esempio sotto il percorso di prova C:percorso_fisicodatabase.mdbdove percorso_fisico è l'indirizzo fisico del vostro server Web personale, installato, come nell'esempio, sulla partizione C. Il database è pronto. Proseguiamo. Introduzione ad ADO ADO è una libreria di casa Microsoft che permette l'interazione con DBMS di casa Microsoft stessa o con altri DBMS, ad esempio con MySQL per il suo utilizzo con ASP. ADO mette a disposizione tre oggetti fondamentali: Connection, Recordset e Command. In questo Articolo utilizzeremo i primi due che servono rispettivamente a gestire la connessione ed a gestire i dati. Il terzo è un oggetto specialistico, ottimo ma non troppo usato nemmeno dai programmatori di stampo Microsoft, se non in occasioni particolari. Nota per i programmatori ASP: cari colleghi :-) come me siete abituati ad utilizzare il carattere punto (.) per separare il nome della variabile che contiene, ad esempio la connessione, col metodo o con la proprietà da utilizzare; in PHP, per la sola interazione con ADO, si usa come separatore la forma -> variabile->metodoricordatelo! Stabiliamo la connessione al database Creiamo adesso sul nostro server Web una directory di prova, ad esempio phpaccess ed inseriamo all'interno il file connessione.php contenente il seguente codice:
<?PHP
$db = "C:percorso_fisicodatabase.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$db;";
?>
La variabile $db contiene il percorso fisico del file database.mdb mentre la variabile $sc contiene la stringa di connessione OLEDB al database; questo file verrà incluso in tutti i file PHP che effettueranno operazioni sul database in questione.Lettura dei dati Per eseguire la lettura dei dati creiamo sul server, nella cartella di prova, il file leggi.php; di seguito il codice commentato del file:
<html>
<head>
<title>Interazione tra PHP ed Ms Access</title>
</head>
<body>
<?PHP
// Includo il file contenente la stringa di connessione
include("connessione.php");
// Creo due oggetti COM contenenti gli oggetti Connection e Recordset
$cn = new COM("ADODB.Connection");
$rs = new COM("ADODB.Recordset");
// Apro la Connection ed il Recordset
$cn->open($sc);
$rs->Open("SELECT * FROM utenti", $cn);
// Controllo che sulla tabella ci siano dati
if ($rs->EOF) print "<p>Nessun dato trovato</p>";
// Se ce ne sono effettuo un ciclo di lettura
else while ($rs->EOF == FALSE)
{
print "<p>";
print "<b>Nome:</b> " . $rs->Fields ['nome']->value;
print "<br>";
print "<b>Cognome:</b> " . $rs->Fields ['cognome']->value;
print "</p>";
$rs->MoveNext();
}
// Chiudo il Recordset
$rs->Close();
$rs->Release();
$rs = null;
// Chiudo la Connection
$cn->Close();
$cn->Release();
$cn = null;
?>
</body>
</html>
Il funzionamento è semplice: al Recordset passo la query in lettura e specifico la variabile in cui è stata aperta la connessione; la proprietà EOF dell'oggetto Recordset (End Of File) legge tutti i dati in funzione della query specificata; se settata su TRUE vuol dire che non ci sono dati nel database, quindi lancio il messaggio di notifica; se settata su FALSE all'interno di un ciclo, legge tutti i dati in funzione della query specificata; il metodo MoveNext() interrompe il ciclo e posizione il cursore di ADO all'inizio del ciclo, evitando un loop infinito.Nella chiusura degli oggetto troviamo i metodi Close() e Release() che servono rispettivamente a chiudere l'oggetto ed a distruggere un COM. In fine si setta la variabile su null in modo da svuotare la memoria della variabile. Scrittura dei dati Il criterio con cui si scrivono dei dati su un database Access con PHP è simile al criterio di lettura dei dati; nel codice che segue, scritto nel file scrivi.php non utilizza il Recordset ma esegue una INSERT SQL grazie al metodo Execute() dell'oggetto Connection; il codice commentato:
<html>
<head>
<title>Interazione tra PHP ed Ms Access</title>
</head>
<body>
<?PHP
// Includo il file contenente la stringa di connessione
include("connessione.php");
$cn = new COM("ADODB.Connection");
$cn->open($sc);
// Effettuo l'inserimento dei dati
$cn->Execute("INSERT INTO utenti (nome, cognome) VALUES ('Luca', 'Ruggiero')");
// Lancio un messaggio di conferma
print "<p>Inserimento effettuato con successo</p>";
// Chiudo la Connection
$cn->Close();
$cn->Release();
$cn = null;
?>
</body>
</html>
|
IN EVIDENZA
Una slidegallery con jQuery
Pagamenti online con PayPal e PHP
Breve guida a jQuery
Effetto ombra su testo con Photoshop
Guadagna col tuo sito grazie a TradeD...
Guida XHTML
Riscrivere le URL con Asp
Riavviare IIS
HTTP 500 internal server error
Generare password casuali in Javascri...
Errore 80004005: Cannot update. Datab...
Introduzione ad Ajax ed Asp con Jscri...
Referenze dei Tag Html
Stringhe di connessione via ODBC e Ol...
Referenze dei fogli di stile Css
Le espressioni regolari in Javascript
|
||||
© 2001/2010 lukeonweb.net - A cura di Luca Ruggiero, Partita IVA 05564851219 -
Privacy |
Pubblicità |
Contatti
| |||||