• Non ci sono risultati.

MsAccess in PHP

N/A
N/A
Protected

Academic year: 2021

Condividi "MsAccess in PHP "

Copied!
3
0
0

Testo completo

(1)

MsAccess in PHP - Prof. Claudio Maccherani - Perugia - 2018 pag. 1

MsAccess in PHP

Esempio di applicazione

PHP

che gestisce un database

ACCESS

Prof. Claudio Maccherani, 2018

Un’applicazione che interroghi un database remoto in un server Web è scritta in PHP (Personal Home Page tools, PHP Hypertext Processor) - se piattaforma Linux-Apache - o in ASP (Active Server Page) - se piattaforma NT / IIS 4 - e si serve di tre diverse tipologie di pagine utilizzando un modello di applicazione detto Three-Tied (a tre livelli). Il livello di interfaccia con l’utente finale (Front End) corrisponde alle pagine HTML o DHTML interpretate dal browser del client, il livello intermedio (Middleware) corrisponde alle pagine ASP o PHP che collegano il database e sono eseguite dal server e infine l’ultimo livello (Back End) è quello fornito dal software di sviluppo e manutenzione del database remoto. Per maggiori informazioni su PHP si vedano le relative dispense.

Le pagine PHP sono eseguite all’interno di server web Linux-Apache (o in XAMPP se sotto Windows), ma possono essere eseguite anche all’interno di server Web IIS di Microsoft.

PHP lavora naturalmente con il dbms MySql, ma può operare anche con altri dbms, quali Access (il cui ambiente naturale è il server web IIS e il linguaggio ASP). Per maggiori informazioni su Access si vedano le relative dispense.

Per la gestione di Access l’interfaccia fornita da Microsoft per i linguaggi di programmazione - sia stand alone che sul web quali Visual Basic, ASP e ASP.NET - è ADO (ActiveX Data Objects), basata su OLEDB, che consente l’accesso a tutti i tipi di dati e che prevede gli oggetti Connection, Command, Error, Recordset e Field. Per maggiori informazioni su ADO si vedano le relative dispense.

Con Connection si stabilisce la connessione con la sorgente dati, il database; l’oggetto Recordset consente di gestire i dati delle tabelle tramite query SQL; l’oggetto Field è un campo della tabella;

l’oggetto Command combina l’oggetto Connection e l’oggetto Recordset; l’oggetto Error rappresenta un errore generato dall’origine dati. Il metodo Execute consente di eseguire comandi DDL e DML di SQL.

Avvertenze

1) La connessione al database deve essere diretta, specificando la posizione fisica/assoluta del database (e non il suo percorso relativo)

$db = "C:\pathname assoluto\database.mdb";

$sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $db . ";";

$cn->Open($sc); // aperture connessione con il database

2) Per separare il nome della variabile dal metodo o dalla proprietà da utilizzare NON si deve usare la dot notation (punto "."), ma il separatore "

->

": variabile->metodo

(2)

MsAccess in PHP - Prof. Claudio Maccherani - Perugia - 2018 pag. 2

Esempio (rielaborato da un articolo di Luca Ruggiero pubblicato su Mr.Webmaster il 7 dicembre 2004)

La rubrica è costituita dalla tabella AMICI (Codice, Nome, Cognome, Telefono) del data base Access2003 RUBRICA.mdb. L’applicazione PHP - che prevede elenco e inserimento - è costituita dalle pagine index.php, inserimento.php, connessione.php e inserimento.htm che risiedono nella stessa cartella del database Rubrica.mdb, ed è così strutturata:

connessione.php

<?PHP

$db = "E:\inetpub\wwwroot\Prova_PHP_Access\Rubrica.mdb";

$sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $db . ";";

?>

index.php

<HTML><HEAD>…</HEAD>

<BODY>…

<?PHP

include("connessione.php");

$cn = new COM("ADODB.Connection");

$rs = new COM("ADODB.Recordset");

$cn->Open($sc);

$rs->Open("SELECT * FROM Amici Order By Codice", $cn);

if ($rs->EOF) echo "<p>Nessun dato trovato</p>";

else echo "<table ><tr><td>Codice</td><td>Nome</td>…</tr>";

while ($rs->EOF == FALSE) {

echo "<tr><td>".$rs->Fields ['Codice']->value."</td><td>".

$rs->Fields ['Nome']->value."</td></td>"....;

$rs->MoveNext();

} echo "</table>";

$rs->Close(); $cn->Close();

?>

… </BODY></HTML>

inserimento.htm Nome [ ] Cognome [ ] Telefono [ ]

aggiungi indietro

index.php

Codice Nome Cognome Telefono

inserimento

inserimento.php

memorizza il nuovo record

Rubrica.mdb Amici connessione.php

parametri connessione al database Access

(3)

MsAccess in PHP - Prof. Claudio Maccherani - Perugia - 2018 pag. 3

inserimento.htm (form)

<HTML><HEAD>…</HEAD>

<BODY>…

<form action="inserimento.php" method="POST">

<table border="0">

<tr><td>Codice</td><td><input type="text" name="Codice"></td></tr>

<tr><td>Nome</td><td><input type="text" name="Nome"></td></tr>

<tr><td>Cognome</td><td><input type="text" name="Cognome"></td></tr>

<tr><td>Telefono</td><td><input type="text" name="Telefono"></td></tr>

</table>

<p><input type="submit" value="Aggiungi">

<input type="reset" value="Azzera campi">

<a title=" torna all'inizio " href="index.php">Indietro</a></p>

</form>

… </BODY></HTML>

inserimento.php

<?php

$cod = $_POST['Codice'];

$nom = $_POST['Nome'];

$cog = $_POST['Cognome'];

$tel = $_POST['Telefono'];

include("connessione.php");

$cn = new COM("ADODB.Connection");

$cn->Open($sc);

$sql = "INSERT INTO Amici (Codice,Nome,Cognome,Telefono,Eta) VALUES ($cod,'$nom','$cog','$tel')";

$cn->Execute($sql);

echo "<p>Inserimento effettuato con successo</p>";

$cn->Close();

?>

Riferimenti

Documenti correlati

Avanzato E’ in grado di individuare i comandi nel menu in modo autonomo anche in situazioni nuove non note; e in grado di salvare su qualunque dispositivo i

Ad una distanza di 5 metri, esegui 5 serie di tiri di riscaldamento speciale concentrandoti sulle fasi della sequenza: prima serie rimanendo concentrati sui

In caso di domanda ‘Scartata’ per presenza di errori formali riscontrati almeno su un serbatoio inserito nel modulo excel, l’utente potrà presentare nuovamente la domanda mediante

- Comprendere semplici testi, accompagnati da supporti visivi, cogliendone il significato globale. Metodo funzionale comunicativo che prevede la creazione di volta in volta di

avendo cura di consultare a priori l’esito dei controlli formali effettuati sul modulo excel per evitare di ripresentare una domanda non formalmente corretta

Servizi generali e  istituzionali – Sistema 

Amaranto, Orzo, Grano Saraceno, Cece, Mais, Grano Duro (Durun), Farro ( Triticum Boeoticum), Farro Dicocco, Glutine, Semi di Canapa, Semi di Lino, Semi di Lupino, Malto (Orzo),

- estensione della “Delega al pagamento”: il delegato al pagamento può eseguire entrambi i pagamenti (contributi e bolli). Sono stati implementati ulteriori controlli di congruenza