SlideShare a Scribd company logo
1 of 16
Download to read offline
SITI WEB DINAMICI
CON PHP
lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net
INTRODUZIONE AI DATABASE
 ­ che cos'è un database
 ­ database su file vs database server
    ­ SQLite, MS Access
    ­ MySQL, PostgreSQL, Oracle, MS SQL Server
 ­ modello relazionale
RIFERIMENTI:
http://it.wikipedia.org/wiki/Database 
http://it.wikipedia.org/wiki/Modello_relazionale 
http://it.wikipedia.org/wiki/Algebra_relazionale 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

2

16
ACCESSO A UN DATABASE
 ­ TCP/IP (tramite apposite funzioni/classi)
 ­ File
 ­ ODBC

RIFERIMENTI:
http://it.wikipedia.org/wiki/ODBC 
http://www.php.net/manual/en/refs.database.php 
http://www.php.net/manual/en/refs.database.abstract.php 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

3

16
ACCESSO A MYSQL
 ­ MySQL
    ­ default su porta 3306/TCP
    ­ credenziali e privilegi sul DB
    ­ tool da linea di comando
    ­ altre interfacce
 ­ MySQL da PHP
    ­ Original MySQL API (deprecata da PHP 5.5.0+)
    ­ MySQLi (MySQL Improved)
    ­ procedurale vs object oriented
RIFERIMENTI:
http://www.php.net/manual/en/set.mysqlinfo.php 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

4

16
PHP: CONNESSIONE AL DB
$db = new mysqli($hostname,
                 $username,
                 $password,
                 $database)
$db­>connect_errno; → 0 se tutto ok
$db­>connect_error; → NULL se tutto ok
$db­>close();
RIFERIMENTI:
http://www.php.net/manual/en/mysqli.construct.php 
http://www.php.net/manual/en/mysqli.connect­errno.php 
http://www.php.net/manual/en/mysqli.connect­error.php 
http://www.php.net/manual/en/mysqli.close.php 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

5

16
DOMANDE?

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

6

16
LINGUAGGIO SQL
 ­ il linguaggio SQL (Structured Query Language)
    ­ manipolare lo schema dei dati
      (DDL = Data Definition Language)
    ­ manipolare i dati
      (DML = Data Manipulation Language)
    ­ interrogare il database
      (DQL = Data Query Language)
    ­ gestire l'accesso ai dati
      (DCL = Data Control Language)
RIFERIMENTI:
http://it.wikipedia.org/wiki/SQL 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

7

16
SQL: DATA DEFINITION
 ­ creare/cancellare un database
    (CREATE DATABASE...)
 ­ definizione di tabella: campi e record
 ­ chiave primaria / chiave esterna
 ­ creare/cancellare/modificare una tabella
    (CREATE TABLE.../DROP TABLE.../ALTER TABLE...)
RIFERIMENTI:
http://dev.mysql.com/doc/refman/5.5/en/index.html 
http://downloads.mysql.com/docs/refman­5.5­en.a4.pdf 
http://it.wikipedia.org/wiki/Chiave_primaria 
http://it.wikipedia.org/wiki/Chiave_esterna 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

8

16
SQL: DATA QUERY/MANIPULATION
 ­ leggere dati da una tabella
    (SELECT...)
 ­ modificare dati in una tabella
    (UPDATE...)
 ­ cancellare dati da una tabella
    (DELETE...)

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

9

16
DOMANDE?

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

10

16
PHP: ESEGUIRE QUERY
$result = $db­>query($query)
 ­ $query  = stringa di testo con il comando da
             inviare al database
 ­ $result = FALSE se l'esecuzione non ha successo
             oggetto del tipo “mysql_result”

RIFERIMENTI:
http://www.php.net/manual/en/mysqli.query.php 
http://www.php.net/manual/en/class.mysqli­result.php 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

11

16
PHP: PARSING DEI RISULTATI
 ­ contare campi e record
    ­ $r­>field_count
    ­ $r­>num_rows
 ­ leggere i record estratti
    ­ $r­>fetch_object()

RIFERIMENTI:
http://it1.php.net/manual/en/mysqli­result.field­count.php 
http://it1.php.net/manual/en/mysqli­result.num­rows.php 
http://it1.php.net/manual/en/mysqli­result.fetch­object.php 

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

12

16
DOMANDE?

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

13

16
UN PO' DI PRATICA...
 ­ connessione a un database
    ­ semplice script
    ­ codice da includere in futuro
    ­ scheletro di uno script più complesso
 ­ creare/cancellare tabelle
 ­ inserire dati in una tabella
 ­ leggere dati da una tabella
 ­ modificare dati in una tabella

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

14

16
DOMANDE?

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

15

16
ALLA PROSSIMA LEZIONE!
07feb

siti web dinamici con php

lezione #05 – 04/02/2014
Matteo Moro - www.MatteoMoro.net

16

16

More Related Content

Similar to Corso PHP ENAIP - lezione #05 - 04/02/2014

Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the WebClaudio Gandelli
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Codemotion
 
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural HeritageDiego Valerio Camarda
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkMassimo Schiro
 
Infrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on RailsInfrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on Railsguestfe3e15
 
Race condition in applicazioni PHP
Race condition in applicazioni PHPRace condition in applicazioni PHP
Race condition in applicazioni PHPdavidemarrone
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Vincenzo Patruno
 
RESTful "il web programmabile"
RESTful "il web programmabile"RESTful "il web programmabile"
RESTful "il web programmabile"Flavio Troia
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiPietro Libro
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMSRoberto Polillo
 

Similar to Corso PHP ENAIP - lezione #05 - 04/02/2014 (20)

Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 
Presentazione wi400 i5
Presentazione wi400 i5Presentazione wi400 i5
Presentazione wi400 i5
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
 
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage
#culta15 - Requisiti e tecnologie: i Linked Open Data per il Cultural Heritage
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Infrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on RailsInfrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on Rails
 
Lamp Ld2008
Lamp Ld2008Lamp Ld2008
Lamp Ld2008
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Race condition in applicazioni PHP
Race condition in applicazioni PHPRace condition in applicazioni PHP
Race condition in applicazioni PHP
 
S354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.xS354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.x
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
 
RESTful "il web programmabile"
RESTful "il web programmabile"RESTful "il web programmabile"
RESTful "il web programmabile"
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
 
Net core base
Net core baseNet core base
Net core base
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 

Recently uploaded

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptcarlottagalassi
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 

Recently uploaded (7)

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.ppt
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 

Corso PHP ENAIP - lezione #05 - 04/02/2014