Lavorare con MySQL Parte Seconda.



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

PHP e MySQL. Scripting server-side per accesso a DB MySQL

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

PHP e MySQL. Guida scaricata da

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

MySQL Database Management System

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

MySQL Database Management System

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

19. LA PROGRAMMAZIONE LATO SERVER


<?php include './include/page.php';

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

Lezione 9. Applicazioni tradizionali


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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Esercizi ed appunti PHP

APPUNTI DI PHP : V INFORMATICA SEZIONE G

Le espressioni regolari.

PHP e Structured Query Language

Progetto ittorario Anno scol

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Codifica: dal diagramma a blocchi al linguaggio C++

Progettazione Web Applicazioni client-server

Eliminare i contatti duplicati in MS Outlook

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

Esercitazione sulle libpq - libreria C per PostgreSQL

Architettura a tre livelli (1)

RELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

OSSIF WEB. Manuale query builder

GERARCHIE RICORSIVE - SQL SERVER 2008

Un client su arduino invia i dati acquisiti ad un database

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

Corso di Web Programming

I DATABASE Database relazionale

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Mac Application Manager 1.3 (SOLO PER TIGER)

2. Costruire un database con Apache, PHP e MySql

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Interazione con l utente : i moduli.

Gestione Risorse Umane Web

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

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

ISI s.r.l. Corso di Access 05 CREARE UN ELENCO MAILING ED INVIARE MESSAGGI DI POSTA ELETTRONICA Pag. 1/6

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

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

Dispensa di database Access

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

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

Programmazione Web. Laboratorio 4: PHP e MySQL

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Tesi Di Laurea. Anno Accademico 2010/2011. relatore Ch.mo prof. Cinque Marcello. correlatore Ch.mo Ing. Catello Cacace

[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection

Le Basi di Dati. Le Basi di Dati

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

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

GUIDA ALL UTILIZZO DEL PORTALE DELLA RETE DEI COMUNI OGLIO PO

Sistemi per la gestione di database: MySQL ( )

Libero Emergency PC. Sommario

Capitolo 13. Interrogare una base di dati

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

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

PROCEDURA N. 22 Gestione dei numeri di cellulare

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

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

Introduzione Benvenuto nella guida del sito ecommerce di

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

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

PHP 5. Accesso a database

Apache 2, PHP5, MySQL 5

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Soluzione dell esercizio del 2 Febbraio 2004

CONCETTO DI ANNIDAMENTO

Esercitazione 02: JDBC, SQL e DB SAMPLE

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

ACCESSO AL PORTALE INTERNET GSE

File, Modifica, Visualizza, Strumenti, Messaggio

developed by Emanuele De Carlo

Kroll Ontrack Servizi RDR Guida rapida

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

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

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

teamspace TM Sincronizzazione con Outlook

MODULO 5 ACCESS Basi di dati. Lezione 4

GUIDA AI PROBLEMI DI ACCESSO E VISUALIZZAZIONE

Eprogram ITIS V anno Unità 6 - PHP e MySQL

Introduzione Benvenuto nella guida del sito ecommerce di

GUIDA 1. Processo di pre-immatricolazione on line LAUREE TRIENNALI, LAUREE MAGISTRALI A CICLO UNICO

Manuale d uso Event Bureau

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Transcript:

Lavorare con MySQL Parte Seconda. PHP, dalla versione 4.0, usufruisce difunzioni native per colloquiare con MySQL, senza appoggiarsi ad alcuna libreria o modulo esterno. In questa lezione verranno esaminate le funzioni che occorrono per interfacciarsi con un database MySQL tramite PHP. Connettersi al Server MySQL Le funzioni chiave per predisporre PHP a lavorare con le tabelle di un database MySQL sono le tre : mysql_connect(), mysql_pconnect() e mysql_select_db(). Le prime due sono esclusive, nel senso che bisogna utilizzare ol una o l altra. In seguito vedremo le differenze. mysql_connect() Questa funziona accetta tre argomenti e restituisce un identificativo di connessione (o handle), che deve essere utilizzato per le successive operazioni fornendolo come argomento alle altre funzioni che vederemo più avanti. La sintassi è la seguente : $conn=mysql_connect($host,$user,$password) Le variabili $host, $user e $password contengono i parametri di connessione specificati per l utente che deve connettersi al server mysql. E bene tenere queste variabili in un file separato di estensione.php (e non semplicemente.inc come fanno in molti!!!) per evitare di dover cambiare, in tutti i file che utilizzano una connessione al db, i valori di user e password di connessione, nel caso si abbia necessità di lavorare con utenti differenti, di dover risettare la password etc. Si ricordi di aggiungere l estensione php a tutti i file da includere, per evitare che un utente smaliziato visualizzi il codice sul browser semplicemente collegandosi all indirizzo dovuto. Provate a vedere con Google quanti siti hanno un file db.inc che può essere visualizzato in chiaro e che conterrà probabilmente il nome utente e la password per connettersi al database. mysql_pconnect() E identica a mysql_connect(), ma cambia il modo in cui viene gestita la connessione (che è completamente trasparente al programmatore). Infatti, utilizzando mysql_connect(), la connessione viene rilasciata ad ogni terminazione dello script. Con mysql_pconnect() i risparmia il tempo macchina occorrente a ristabilire una connessione al server MySQL, poiché il collegamento rimane attivo in attesa di una nuova connessione mysql_pconnect(). mysql_select_db() Serve per selezionare il database su cui lavorare. Come argomento accetta il nome del database : mysql_select_db($db); Anche $db è una variabile che dovrebbe essere definita una volta per tutte in un file esterno.

Interrogazioni al database. Se ci sono errori in fase di connessione o di selezione del database, è bene interrompere l esecuzione dello script utilizzando la funzione die(). mysql_select_db($db) or die( DB non selezionato.mysql_error()); mysql_error() riporta l errore avvenuto. Dopo aver effettuato tutte le operazioni sul database, quali selezioni, cancellazioni, update etc., bisogna chiudere la connessione tramite la funzione mysql_close(), che accetta come argomento l handle di connessione : mysql_close($conn); Interrogazioni al database. Per eseguire una query qualsiasi al database selezionato, si utilizza la funzione mysql_query(), che restituisce un recordset, nel caso la query sia di tipo SELECT, che deve essere successivamente scandito per prelevare i singoli record. Tale funzione accetta come argomenti la query da effettuare, di tipo stringa, e l identificativo di connessione precedentemente ottenuto con le funzioni connect. $res=mysql_query($query,$conn); Se la query è di tipo UPDATE o DELETE, si può anche scrivere l istruzione nel seguente modo : mysql_query($query,$conn) or die( Errore :.mysql_error()); Per determinare il numero di righe risultante da una query di selezione, si utilizza la funzione mysql_num_rows(), che accetta come argomento il recordset prelevato e restituisce il numero di record risultante. $righe=mysql_num_rows($res); Accesso alle informazioni Per prelevare le informazioni da un recordset ed effettuare operazioni sui singoli record quali la visualizzazione sul browser, PHP offre tre funzioni, sostanzialmente equivalenti: o mysql_fetch_row() o mysql_fetch_array() o mysql_fetch_object() Se si conosce il numero esatto dei record prelevati, tramite ad esempio la funzione mysql_num_rows(), si può utilizzare un ciclo for per scorrere tutti i record : $num=mysql_num_rows($res); if ($num==0) { print='non ci sono record! ; else { for ($i=1;$i<=$num;$i++) { $row = mysql_fetch_row($res);

$id=$row[0]; $nome= $row[1]; $cognome = $row[2]; $email = $row[3]; print Nome: $nome, Cognome: $cognome <br> ; print Email: $email <br><br><hr> ; // fine for fine else In pratica, la funzione restituisce un record a cui è possibile accedere ai singoli campi semplicemente ricordando la sequenza dei campi prelevati tramite l istruzione SELECT. Quindi, in questo esempio la query era del tipo : $query= SELECT id,nome,cognome,email FROM TblClienti ; Altro tipo di ciclo da effettuare è il seguente : while ($row=mysql_fetch_row($res)) { foreach($row as $field) print <br>$field ; L unica differenza con le altre funzioni di accesso al record è il modo di interpretare il tipo di variabile in cui è contenuto il record prelevato. Con mysql_fetch_array(), $row sarà una sorta di array associativo, a cui è possibile accedere ai singoli campi semplicemente tramite la sintassi $row[nome_campo], mentre mysql_fetch_object interpreta la variabile $row come oggetto, e quindi i singoli campi come proprietà di esso (più avanti nel corso parleremo di oggetti e classi in PHP). Sarà possibile accedere ai singoli campi tramite la sintassi : $row->nomecampo: while ($row=mysql_fetch_array) { print Nome: $row[nome], Cognome: $row[cognome] <br> ; print Email: $row[email] <br><br><hr> ; Oppure : while ($row=mysql_fetch_object) { print Nome: $row->nome, Cognome: $row->cognome <br> ; print Email: $row->email <br><br><hr> ; Un piccolo esempio completo Anche se in seguito si farà un massiccio uso delle funzioni mysql per i nostri script di esempio, riportiamo un piccolo esempio che riporti tutte le funzioni viste fino ad adesso: <?PHP include("corso.inc.php");

Un piccolo esempio completo //connect() è una funzione utente //contenuta in corso.inc.php //effettua la connessione e // seleziona il database //restituendo l'handle di connessione $conn=connect($host,$user,$pass,$db); $query="select * FROM TblClienti WHERE id>2"; $res=mysql_query($query,$conn); $num=mysql_num_rows($res); echo "<TABLE><TR><TD><B>id</B></TD>"; echo "<TD><B>Nome</B></TD><TD><B>Cognome</B></TD>"; echo "<TD><B>Email</B></TD><TD><B>Note</B></TD></TR>\n"; for ($i=1;$i<=$num;$i++) { $row=mysql_fetch_row($res); $id=$row[0]; $cognome=$row[1]; $nome=$row[2]; $email=$row[3]; $note=$row[4]; echo "<TD>$id</TD>"; echo "<TD>$nome</TD><TD>$cognome</TD>"; echo "<TD>$email</TD><TD>$note</TD></TR>\n"; echo "</TABLE>";?> Il contenuto del file corso.inc.php è il seguente : <?PHP $host='localhost'; $user='corso'; $pass='test'; $db='corso'; function connect($host,$user,$pass,$db) { $conn=mysql_pconnect($host,$user,$pass); mysql_select_db($db); return $conn;?> Il risultato ottenuto nel browser all esecuzione dello script è : id 3 Nome Cognome Fabio Verdi Email fverd@tin.it Note Cliente 3 4 Max Neri max@tin.it Cliente 4 5 Joy Gialli joy@tin.it Cliente 5 Come potete osservare, dialogare con un database MySQL in PHP è davvero molto semplice. Nella prossima lezione parleremo delle sessioni, l ultimo elemento indispensabile per costruire un software completo, come un applicazione di commercio elettronico. In seguito, ci sarà una

serie di lezioni che spiegheranno nel minimo dettaglio come programmare un catalogo ed un carrello per un e-shop di un nostro ipotetico cliente. Allo scopo, utilizzeremo l interfacciamento ad un database MySQL e le sessioni. Alla prossima!!?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.