PHP e MySQL. Guida scaricata da www.webstyling.it



Похожие документы
Lavorare con MySQL Parte Seconda.

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

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

MySQL Database Management System

19. LA PROGRAMMAZIONE LATO SERVER

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

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

File, Modifica, Visualizza, Strumenti, Messaggio

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

Progettazione Web Applicazioni client-server

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

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MySQL Database Management System

GERARCHIE RICORSIVE - SQL SERVER 2008

Guida alla registrazione on-line di un DataLogger

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

FPf per Windows 3.1. Guida all uso

Un client su arduino invia i dati acquisiti ad un database

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

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

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

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

Richiesta pagina PHP (es: index.php)

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

Mac Application Manager 1.3 (SOLO PER TIGER)

Le query di raggruppamento

Creare un sito Multilingua con Joomla 1.6

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

Visual basic base Lezione 01. L'ambiente di sviluppo

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

Guida iscrizione Community. istruzione.social.marche.it

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Manuale Utente Albo Pretorio GA

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

AVCP-Xml Manuale per l'aggiornamento alla versione Provincia di Cremona

MANUALE EDICOLA 04.05

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

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

Collegamento remoto vending machines by do-dots

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

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Corso Drupal «Project management»

Joomla: Come installarlo e come usarlo. A cura di

MANUALE RAPIDO INSERIMENTO CHIAMATE ASSISTENZA PORTALE SELF-SERVICE (IWEB)

Eprogram ITIS V anno Unità 6 - PHP e MySQL

Esercizi su. Funzioni

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Esercizio 2. Client e server comunicano attraverso socket TCP

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

FtpZone Guida all uso Versione 2.1

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

APPUNTI DI PHP : V INFORMATICA SEZIONE G

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

Presentazione Data Base

Come produrre un file PDF da SAP facendo in modo che venga salvato in automatico in una cartella di rete

Università di Pisa - Database dei Corsi di Laurea e Laurea Specialistica in Ingegneria Elettrica - Per consultazione

Guida alla personalizzazione delle stampe per Scrutinio 10 e Lode e ScrutiniOnLine

I file di dati. Unità didattica D1 1

FtpZone Guida all uso

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

POLIAGE GUIDA RAPIDA

GateManager. 1 Indice. tecnico@gate-manager.it

MANUALE DI INTEGRAZIONE API SMSSmart (v 2.2)

2.7 La cartella Preparazioni e CD Quiz Casa

ISTRUZIONI AGGIORNAMENTO TARIFFARIO 2006

Guida al backup e aggiornamento del programma MIDAP

Guida all impostazione. Eureka Web

Monitor Orientamento. Manuale Utente

Introduzione ai Sistemi di Gestione di Basi di Dati XML

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

- DocFinance Manuale utente

La connessione php-mysql con MySQLi

Introduzione JDBC interfaccia java.sql driver caricare i driver

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

Guida al CRM INGENIA Group

Database e reti. Piero Gallo Pasquale Sirsi

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Database 1 biblioteca universitaria. Testo del quesito

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

Configurazione di un nuovo account di posta in Outlook Express

Guida all installazione di Easy

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Installazione di Moodle. Preparato per: Gruppo A, Piattaforma di E - Learning Preparato da: Cinzia Compagnone, Vittorio Saettone

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

Funzioni non documentate Openoffice.org. 3 Base mini-howto

Транскрипт:

Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1 il team di PHP ha sviluppato una nuova API (insieme di funzioni) che permette a PHP di interagire con MySQL, contenuta in una estensione chiamata mysqli (mysql improved). Tale estensione si affianca quindi alla più vecchia estensione mysql, estendendone le funzionalità ed introducendo anche un'interessante interfaccia ad oggetti. Se si vogliono provare le nuove caratteristiche di MySQL 5 dovrete installare l'estensione mysqli mentre se vorrete testare la compatibilità di script PHP di non recente realizzazione l'estensione mysql farà al caso vostro. E' comunque possibile installarle entrambe. Vi rimando comunque alla guida di MySQL per ulteriori approfondimenti sui database e alla guida di Apache per la sua configurazione per MySQL 5. Nel PHP ci sono quindi delle funzioni native riservate proprio alla gestione di applicazioni su database. Di seguito sono mostrate le funzioni relative alla vecchia estensione di MySQL "mysql_" visto che su molti server web è ancora installata la versione del PHP 4.x; potete applicare le stesse funzioni anche alla nuova estensione di PHP5, usando però il suffisso "mysqli_". mysql_connect(server,nome_utente,password) mysql_connect("localhost:3306","root","") Stabilisce la connessione al server MySql. mysql_close(identificativo_connessione); Chiude la connessione al server MySql. mysql_create_db("nome_db"); Crea un database di nome "nome_db". die(); Funziona come la funzione exit();, solo che mi consente di fornire una frase in output scritta all'interno delle parentesi. mysql_error(identificativo_connessione); Cattura gli eventuali errori di MySql e me li fornisce in output. L'identificativo di connessione può essere anche omesso. mysql_select_db("nome_db",identificativo_connessione); Corrisponde al comando use di MySql. mysql_query("stringa_query",identificativo_connessione); Invia una query al database. mysql_db_query("nome_db", "stringa_query",identificativo_connessione); Seleziona il database ed eseguisce la query inviata.

mysql_list_dbs(identificativo_connessione); Elenca tutti i database presenti. mysql_list_tables("nome_db",identificativo_connessione); Elenca tutte le tabelle del database passato come parametro. mysql_fetch_array("nome_array",mysql_assoc); Riceve come primo parametro un array contenente la query da passare a MySql. Oltre a memorizzare i dati del risultato in un array con indice numerico, questa li memorizza anche con indici associativi usando i nomi dei campi come chiavi. Vedi l'esempio successivo per capire meglio tale associazione. mysql_fetch_assoc("nome_array"); E' la stessa della precedente. mysql_free_result($risultato); Libera la memoria occupata dal risultato. Restituisce TRUE in caso di successo, FALSE in caso di fallimento. mysql_num_fields($risultato); Mi restituisce il numero di campi totali della tabella. mysql_num_rows($risultato); Mi restituisce il numero dei records totali. mysql_field_table($risultato,identificativo_campo); Mi restituisce il nome della tabella contenente l'identificativo di campo passato come secondo parametro. mysql_field_type($risultato,$i); Mi restituisce il tipo di campo, quali "int", "real", "string", "bool". I due parametri sono rispettivamente la query e l'identificativo della cella. mysql_field_name($risultato,$i); Mi restituisce il nome del campo.

mysql_field_len($risultato,$i); Mi restituisce la lunghezza dei caratteri assegnata al campo. PHP e MySQL: ESEMPI Vediamo ora qualche semplice esempio di applicazione delle funzioni viste nel paragrafo precedente; in primo luogo vediamo come realizzare una applicazione php che si colleghi al database, printi l'identificatvo della connessione ( esso è un numero che identifica la connessione esistente tra il vostro client ed il server di mysql ) e poi che la chiudi. $connessione = mysql_connect("localhost","root","") or die("connessione non riuscita: ".mysql_error()); print("identificativo di Connessione : ".$connessione); Di risultato: Identificativo di Connessione : Resource id #14 Di seguito è mostrato un altro esempio: supponendo di avere un database rubrica, con una tabella nomi contenente appunto solo i nomi, si vuole printare l'elenco di tutti i nomi presenti nel database. $connessione = mysql_connect("localhost","root",""); mysql_select_db("rubrica") or die("selezione del database non riuscita"); $risultato = mysql_query("select * FROM nomi",$connessione); while($riga=mysql_fetch_array($risultato,mysql_assoc)) mysql_free_result($risultato); Ad esempio il risultato potrebbe essere: ID: 1 Nome: Andrea ID: 2 Nome: Sara ID: 3 Nome: Marco ID: 4 Nome: Salvo Le chiavi passate nell'array $riga devono essere scritte esattamente ( maiuscolo/minuscolo ) come sono state scritte in MySql, altrimenti la query non funziona. Vediamo ora in dettaglio la funzione mysql_fetch_array, a cui viene passato come parametro MYSQL_ASSOC: essa mi ricostruisce in maniera ricorsiva l'array $riga associato al risultato della query mysql nel seguente modo: Array( ['id']=>1, ['nome']=>"andrea" ); Alla seconda iterazione del ciclo while, ovviamente i valori cambierebbero.

Vediamo ora come printare i risultati di una query in una tabella realizzata con il semplice codice HTML, nel caso in cui si ha a che fare con una tabella studenti di un database chiamato università: $connessione=mysql_connect("localhost","root","")); mysql_select_db("uni") or die("selezione del database non riuscita"); $query="select * FROM studenti"; $risultato = mysql_query($query) or die("query non valida: ".mysql_error()); print("<table border=1 height=50% width=50% bgcolor=#66ccff>\n"); while($riga=mysql_fetch_array($risultato,mysql_assoc)) print("\t<tr>\n"); foreach($riga as $key=>$val) print("\t\t<td>$val</td>\n"); print("\t</tr>\n"); print("</table>\n"); \t serve per inserire uno spazio di tabulazione, mentre \n per andare a capo; queste tabulazioni saranno visibili solo nel codice HTML della pagina visualizzata nel browser (Visualizza -> HTML dal menù del browser), e non servono per la formattazione della tabella di output. Il cui risultato è il seguente: 1 Andrea De Pippis 2 Sara Ricci 3 Marco Depaolis Tutti gli esempi di sopra sono stati realizzati usando la libreria "mysql" comune anche alle vecchie versioni del PHP, mentre nella pagina seguente vedremo l'uso della libreria "mysqli". PHP e MySQL: ESEMPI - USO DELLA LIBRERIA MYSQLI Ora vediamo gli stessi esempi visti nella precedente pagina, usando però la nuova libreria del PHP 5: mysqli. La novità introdotta da mysqli sta sicuramente nel fatto che questa libreria può essere usata sia con un normale approccio procedurale (troviamo quindi le stesse funzioni di "mysql_") e sia con un approccio ad oggetti, in quanto nel PHP 5 viene introdotta la classe mysqli, che si occupa proprio della connessione e dell'eseguimento di query su di un database MySQL attraverso il PHP, e della classe mysql_result che si occupa invece della gestione dei risultanti di una query. Scorrendo quindi le funzioni native e procedurali del PHP possiamo trovare una corrispondenza con le proprietà di queste classi; per cui alla vecchia funzione "mysql_query", ora corrisponde la funzione "mysqli_query" e il metodo equivalente "mysqli::query". Per questo motivo di seguito sono mostrati gli stessi esempi sia con un approccio "procedurale" e sia con un approccio ad oggetti. Approccio procedurale Di seguito è mostrato l'uso delle funzioni necessarie per la connessione e relativa chiusura. $connessione = mysqli_connect("localhost","root","","dbtest") or die("connessione non riuscita: ".mysqli_connect_error()); print("identificativo di Connessione : ".$connessione);

mysqli_close($connessione); Di seguito, invece, è mostrato un altro esempio: supponendo di avere il solito database rubrica, con la tabella nomi contenente appunto solo i nomi, si vuole printare l'elenco di tutti i nomi presenti nel database. $connessione = mysqli_connect("localhost","root","","rubrica"); if (mysqli_connect_errno()) echo("errore durante la connessione al server MySQL"); exit(); else echo("connessione effettuata con successo"); $risultato = mysqli_query("select * FROM nomi",$connessione); while($riga=mysqli_fetch_assoc($risultato)) mysqli_free_result($risultato); mysqli_close($connessione); Da questi esempi, possiamo vedere che le funzioni sono essenzialmente le stesse di quelle della libreria mysql, con l'unica differenza sostanziale che mysqli_connect riceve come parametro anche il nome del database e l'eventuale porta di connessione e la funzione mysqli_fetch_assoc ritorna direttamente un array "associato" (cioè contenente i nomi dei campi come chiavi e come valori di questi, i valori effettivi contenuti nel database). Approccio procedurale Vediamo direttamente l'ultimo esempio più completo, introducendo il concetto di classe o oggetto (vi rimando alla pagina della guida per approfondimenti in merito). $mysqli = new mysqli("localhost','root','','rubrica'); if (mysqli_connect_errno()) echo("errore durante la connessione al server MySQL"); exit(); else echo("connessione effettuata con successo"); $risultato = $mysqli->query("select * FROM nomi"); while($riga = $risultato->fetch_assoc()) $risultato->close(); $mysqli->close(); Da notare il differente modo di richiamare le funzioni, tipico proprio di un approccio ad oggetti, identificato dalla prima riga del codice (istanza della classe mysqli). Altra differenza è il modo in cui viene liberata la memoria dalla variabile $risultato: la funzione close() corrisponde infatti alla vecchia mysql_free_result().