Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni



Documenti analoghi
MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

Connesione ad un Database Access con PHP. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Corso di Informatica Modulo T3 B2 - Database in rete

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

Lezione 9. Applicazioni tradizionali

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Dispensa di database Access

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Le query. Lezione 6 a cura di Maria Novella Mosciatti

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

APPUNTI SU ADO (ACTIVEX DATA OBJECTS)

LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB

APPENDICE B Le Active Server Page

Data Base in Internet

Le Basi di Dati. Le Basi di Dati

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

JDBC. A. Bechini Accesso a DataD con Java

Corso di Sistemi di Elaborazione delle informazioni

User Tools: DataBase Manager

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Definizione di domini

Capitolo 13. Interrogare una base di dati

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

DBMS (Data Base Management System)

PHP e Structured Query Language

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Introduzione JDBC interfaccia java.sql driver caricare i driver

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

DATABASE RELAZIONALI

Database e reti. Piero Gallo Pasquale Sirsi

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

19. LA PROGRAMMAZIONE LATO SERVER

MySQL Database Management System

La tecnologia ASP.NET e i database

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Database Manager Guida utente DMAN-IT-01/09/10

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Lezione V. Aula Multimediale - sabato 29/03/2008

Access. P a r t e p r i m a

Introduzione ai database relazionali

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

La rubrica degli indirizzi di posta elettronica associati al dominio scuole.piemonte.it

I database relazionali (Access)

JDBC versione base. Le classi/interfacce principali di JDBC

Il database management system Access

Volumi di riferimento

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

GERARCHIE RICORSIVE - SQL SERVER 2008

LEGGERE E VISUALIZZARE I DATI FILTRATI E CALCOLATI DI UNA TABELLA IN UNA PAGINA WEB

1. BASI DI DATI: GENERALITÀ

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Al giorno d oggi, i sistemi per la gestione di database

Interoperabilità. Open Database Connectivity (ODBC)

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

SQL Server BI Development Studio

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

2104 volume III Programmazione

Laboratorio di Basi di Dati e Web

OSSIF WEB. Manuale query builder

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Registratori di Cassa

Progetto ittorario Anno scol

Applicazione ASP di esempio

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Corso di Informatica

Concetti fondamentali dei database database Cos'è un database Principali database

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Informatica per le discipline umanistiche 2 lezione 10

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

FileMaker 12. Guida ODBC e JDBC

Programmazione Java Avanzata Spring - JDBC

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Organizzazione delle informazioni: Database

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Master in Evidence-Based Practice e Metodologia della Ricerca Clinico Assistenziale Mita Parenti. Introduzione ai Database Relazionali

Corso basi di dati ASP e i database

DATABASE.

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Fast Query Manuale Utente. Fast Query Manuale Utente

Informatica I per la. Fisica

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at] .

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

SQL. Alcune note sulla definizione dei dati

Microsoft Access. Microsoft Access

I database. Cosa sono e a cosa servono i Database

Come trattare il risultato di un comando SQL (relazioni) che

Capitolo 4 Pianificazione e Sviluppo di Web Part

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Una metodologia di progettazione di applicazioni web centrate sui dati

Transcript:

Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate tipologie di dati. Di questa tipologia fanno parte: ADO OLE DB ODBC

ODBC Open Database Connectivity (ODBC), È un interfaccia composta da una serie di API che consentono l accesso ai dati di diversi DBMS (Data Base Management System) fornendo un linguaggio comune d interazione. Grazie a ODBC è possibile far dialogare tra loro applicazioni e origini dati diversi, a un livello di astrazione tale che la tipologia di dati noninfluisca sulla modalità di interrogazione degli stessi.

Architettura ODBC

Accesso ai dati L accesso ad un database (remoto) tramite ODBC richiede la cooperazione di 4 componenti: L Applicazione richiama le funzioni SQL per esequire query ed acquisire i risultati. E trasparente rispetto al protocollo di rete, al sistema operativo ed al server DBMS utilizzati, poiché mascherati dal driver. Il Driver Manager è responsabile di caricare i driver richiesti dall applicazione. Viene fornito da Microsoft e garantisce la gestione della corrispondenza tra i nomi e l inizializzazione dei processi coinvolti. I driver sono responsabili di eseguire le funzioni ODBC, eseguendo le query SQL traducendole nella sintassi (e semantica) del proprio server di accesso. I driver sono anche responsabili della restituzione dei risultati alle applicazioni tramite meccanismi di buffer. La fonte dei dati (Data Source Name) rappresenta il database con il quale si vuole comunicare. I driver inviano le chiamate (opportunamente tradotto) al Data Source che le esegue sul server DBMS.

Oggetti utilizati Quando si creano oggetti con PHP si creano in pratica oggetti OLE (Object Linking and Embedding) o ActiveX Component. Tramite gli OLE gli utenti possono creare documenti "contenitori" che comprendono parti gestite da altri programmi, gli OLE si basano sul modello COM (Component Object Model). Tutta la specifica di ActiveX, essendo integrata nella specifica OLE, si basa su questo modello. COM fornisce l architettura e il meccanismo per creare component che saranno condivisi tra applicazioni. Sulla base del modello COM è stato definito DCOM (Distribuited Component Object Model) che definisce una specifica e una mplementazione delle interfacce tra oggetti attraverso la rete.

Interazione Client Server

ADO ActiveX Data Object Component: Fornisce l accesso a un database da un applicazione web mediante Active database Object (ADO). ADO fornisce un semplice accesso per mezzo di ODBC standard a Micorsoft Access, SQL Server, Oracle, Informix, Sybase.

Struttura Di accesso ai dati

OLE DB OLE DB è l evoluzione di ODBC. Sono delle interfacce COM che consentono di scrivere applicazioni senza tener conto della struttura dei dati. I componenti OLE DB sono formati da: Data Providers: consentono l accesso alle informazioni usando una struttura astratta comune. Service components: elaborano e trasportano le informazioni. Data consumers: usano le informazioni.

Accesso ai dati OLE DB accedono ai dati in maniera diretta e molto più rapidamente di DAO (Data Acess Object ) o RDO (Remote Data Object ) che invece passano attraverso il livello ODBC.

Gli Oggetti ADO ADO espone tre oggetti principali: Connection Recordset Command Tali oggetti espongono altri componenti come Fields, Property..

Come connettersi ad un database access ADODB è il tramite necessario per operare nelle pagine PHP o ASP, sia in lettura che in scrittura, su una fonte di dati ODBC. L'oggetto ActiveX che si occupa di fornire la connettività verso un database è Connection, che va dichiarato come un qualsiasi COM $connessione = new COM("ADODB.Connection"); Tramite il riferimento $connessione diventa possibile accedere a metodi e proprietà dell'oggetto Connection.

Oggtto Connection L'oggetto Connection possiede numerose proprietà e metodi, tra i quali più importanti sono: Proprietà: ConnectionString (Contiene le informazioni utilizzate per stabilire una connessione a una fonte dati) Metodi: Open (Apre una connessione a una fonte dati) Execute (Esegue la particolare istruzione SQL passata al metodo mediante un parametro stringa) Close (Chiude un oggetto aperto)

Operazioni tipiche Si crea un oggetto Connection: $connessione = new COM("ADODB.Connection") Si aprire il database: $connessione->open($stringa_di_connessione); passandogli un parametro $stringa_di_connessione opportuno Si eseguono operazioni SQL sul database: $recordset = $connessione->execute($interrogazione); passandogli un parametro sql opportuno Si chiude il database: $connessione->close();

Oggetto Connection La stringa (stringa di connessione) che si deve passare al metodo open in : $connessione = new COM("ADODB.Connection") è costituita da una serie di coppie chiave=valore, separate tra di loro con un punto e virgola. Nel caso tipico è necessario inserire in tale stringa almeno due chiavi, che indicano: il formato di database utilizzato ("driver= ") la sua locazione fisica nel file system del server ("dbq= ")

Esempio $percorso_database = realpath("studenti.mdb"); $connessione = new COM("ADODB.Connection"); $stringa_di_connessione = "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=".$percorso_database; $connessione->open($stringa_di_connessione);

Oggetto Recordset Il metodo Execute, come visto nell'esempio: $recordset = $connessione->execute($interrogazione); restituisce un riferimento ad un oggetto di tipo Recordset (che viene quindi creato automaticamente), che rappresenta una collezione di record del database. Ad esempio, con $ris = $connessione.execute("select * FROM nominativi"); l'oggetto ris contiene tutti i campi di tutti i record presenti nella tabella nominativi del database. E' possibile creare un oggetto RecordSet direttamente: $recordset = new COM("ADODB.Recordset"); $recordset->open($interrogazione,$connessione);

Oggetto Recordset I Recordset possono essere immaginati come vere e proprie tabelle di dati, dove ogni riga corrisponde ad un record, un po' come nella rappresentazione visuale di Access. I valori dei singoli campi del record evidenziato dal cursore sono leggibili tramite l'utilizzo della sintassi: $recordset->fields['idstudente']->value Per poter visualizzare i dati della tabella è quindi possibile sfruttare i metodi e le proprietà degli oggetti Recordset.

Esempio di utilizzo dei metodi eof e movenext while (!$recordset->eof) { echo'<tr>'; echo'<td> '.$recordset->fields['idstudente']->value.'</td>'; echo'<td> '.$recordset->fields['cognome']->value.'</td>'; echo'<td> '.$recordset->fields['nome']->value.'</td>'; echo'<td> '.$recordset->fields['telefono']->value.'</td>'; echo'</tr>'; $recordset->movenext(); }

Ogetto Recordset metodi principali Metodi principali: AddNew Close Delete Find Move MoveFirst - MoveLast MoveNext - MovePrevious Open Seek Update Proprietà principali: BOF (primo record del recordset) EOF (ultimo record del recordset) Index

Utilizzo di Recordset Per quel che riguarda le operazioni di ricerca, inserimento, modifica e cancellazione ci sono due "filosofie": 1. Si usa una stringa SQL nel metodo Execute dell'oggetto Connection per eseguire tutte le operazioni; si usa il RecordSet ottenuto da una ricerca solo per la visualizzazione. 2. Si crea un oggetto RecordSet e su di esso si fanno tutte le operazioni volute.

Usare l'oggetto RecordSet o SQL? Nel primo caso si possono fare operazioni complesse (ricerca tutti i record dove, cancella il record nel quale il nome è...) con la scrittura di un'espressione SQL. Nel secondo caso si utilizzano le normali strutture di programmazione per la ricerca sul RecordSet, gestito in modo analogo ad un array di record. Noi utilizzeremo il primo metodo.

SQL Vediamo quindi come si eseguono ricerche, inserimenti, modifiche o cancellazioni su un database, utilizzando una stringa SQL nel metodo Execute dell'oggetto Connection. Dopo aver dichiarato un oggetto Connection $connesione, si utilizza il metodo Execute: $ris = $connesione->execute(sql); passandogli una stringa sql, contenente un'istruzione SQL da eseguire. Cioè all'interno di questa stringa viene dichiarato al metodo Execute cosa fare.

SQL SQL (Structured Query Language) è un linguaggio che rappresenta lo standard per la definizione, l'interrogazione e la modifica dei database. La conoscenza dell'sql esula dagli scopi di questo corso, ma per poter realizzare qualche applicazione è necessario vederne almeno qualche esempio.

SQL Recupero dati o interrogazioni (query) in SQL SELECT [<lista-colonne> * ] FROM <lista-tabelle> [WHERE <condizione>] La condizione della clausola WHERE può essere una condizione semplice o composta, mediante gli operatori AND OR e NOT, da predicati semplici, in cui ciascun predicato rappresenta un confronto tra due valori.

Esempi di ricerca: SELECT * FROM nominativi SELECT * FROM nominativi WHERE id > 3 SELECT * FROM nominativi WHERE id > 3 AND id < 15 SELECT * FROM nominativi WHERE nome = 'Carlo' SELECT nome,cognome FROM nominativi WHERE nome LIKE 'carlo' SELECT * FROM nominativi WHERE nome LIKE '%carlo' SELECT * FROM nominativi WHERE nome LIKE '%carlo%' SELECT * FROM nominativi WHERE nome LIKE '%carlo%' ORDER BY cognome SELECT * FROM nominativi WHERE nome LIKE '%carlo%' ORDER BY cognome DESC

Operazioni di aggiornamento in SQL INSERT INTO <nome-tabella> [(<listanomi-colonne>)] VALUES (<listavalori-colonne>) Es: INSERT INTO STUDENTI VALUES ( Anna, Turchese, 355773, Via Piave, 7 - Treviso ) DELETE FROM <nome-tabella> WHERE <condizione> Es: DELETE FROM STUDENTI WHERE Telefono= 02-333878

Operazioni di aggiornamento in SQL UPDATE <nome-tabella> SET <nome-attributo> = [<espressione> {, <nome-attributo> = <espressione>] [WHERE <condizione>] Es: UPDATE STUDENTI SET Codice = IN WHERE Matricola > 400001 UPDATE nominativi SET [e-mail] = 'carlo@tin.it' WHERE nome = 'Carlo' AND cognome = 'Rossi'

ESERCITAZIONE Progetto proposto: RUBRICA TELEFONICA / E-MAIL (realizzata con database) - o un altro db a piacere nb.: si dovrebbe realizzare una pagina base (HTML) che consenta di scegliere l'operazione desiderata (lista completa, ricerca, modifica, inserimento nuovi dati e cancellazione), attivando quindi la pagina (HTML) con un modulo che richiami una pagina asp opportuna:

ESERCITAZIONE visualizza Modulo (ricerca tutto o ricerca secondo criteri) (html) Pagina PHP MENU (html) aggiungi cancella Modulo (inserimento record) (html) Modulo (visualizza tutto e scelta record da cancellare) (PHP) Pagina PHP Pagina PHP modifica Modulo (visualizza tutto e scelta record da modificare) (PHP) Pagina PHP