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

16

Click here to load reader

description

 

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

Page 1: Corso PHP ENAIP - lezione #05 - 04/02/2014

SITI WEB DINAMICICON PHP

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

Page 2: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

162

Page 3: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

163

Page 4: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

164

Page 5: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

165

Page 6: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

DOMANDE?

166

Page 7: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

167

Page 8: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

168

Page 9: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

SQL: DATA QUERY/MANIPULATION

 ­ leggere dati da una tabella    (SELECT...)

 ­ modificare dati in una tabella    (UPDATE...)

 ­ cancellare dati da una tabella    (DELETE...)

169

Page 10: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

DOMANDE?

1610

Page 11: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

1611

Page 12: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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 

1612

Page 13: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

DOMANDE?

1613

Page 14: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

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

1614

Page 15: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

DOMANDE?

1615

Page 16: Corso PHP ENAIP - lezione #05 - 04/02/2014

lezione #05 – 04/02/2014

Matteo Moro - www.MatteoMoro.netsiti web dinamici con php

ALLA PROSSIMA LEZIONE!

1616

07feb