PHP i5 #3. By SIRI. : accesso adl DB2 IBMi

Documenti analoghi
PHP ESSENTIALS #10. By WI400 Team. : database e sql

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

La connessione ai database MySQL tramite script PHP versione 5.5

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

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

Connessione con MySQL

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

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

2011 Politecnico di Torino 1

Connessione con MySQL

JDBC JDBC. Driver di accesso. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3

SQL per le applicazioni D B M G

2011 Politecnico di Torino 1

SQL per le applicazioni D B M G

2011 Politecnico di Torino 1

Fondamenti di Informatica A. A / 1 9

MY SQL Guida MySQL di base

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

Laboratorio di Progettazione Web

Laboratorio di Basi di Dati

record a struttura fissa

MyShopDB = MyShop + MySQL

SQL: le funzioni di aggregazione

Utilizzando per la connessione al database un driver di Tipo 1:

Tema Esame Informatica Mercurio Gestione della palestra

Appunti su SQL. Query Language. Comando Select

Esercitazione sulle libpq - libreria C per PostgreSQL

Laboratorio Progettazione Web Le funzioni in PHP. Andrea Marchetti IIT-CNR 2016/2017

DATABASE PER IL WEB. Programmazione Web 1

Laboratorio di Basi di Dati

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Lavorare con MySQL Parte Seconda.

Select From Where...

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

Capitolo 5. Soluzione: Soluzione in C:

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Servlet & JDBC A L B E R T O B E L U S S I A N N O A C C A D E M I C O / Servlet: interazione con un DBMS

Basi di Dati: Corso di laboratorio

Basi di Dati. Esercitazione JDBC 28/05/2007

TUTORIAL IMPORTAZIONE DATI DA FOGLIO EXCELL WINKHOUSE

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Servlet & JDBC. Alberto Belussi. anno accademico 2008/2009

SISTEMI INFORMATIVI E TELEMEDICINA. 6. Query Prof. Mauro Giacomini

Progetto CSP: Innovation & Creativity for School. Istituto Tecnico Industriale Statale Giulio Cesare Faccio Vercelli Gruppo 5 ELETTRONICI

Cap. 7 -Trigger e loro uso

Argomenti Corso SAP ABAP Completo Individuale

Servlet & JDBC ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Servlet: interazione con un DBMS. In Java è possibile interagire con un DBMS attraverso

Servlet & JDBC A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Manuale SQL. Manuale SQL - 1 -

Database 2 a puntata. Pablo Genova I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S.

Basi di Dati. Esercitazione JDBC. Ing. Paolo Cappellari

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

Basi di Dati: Corso di laboratorio

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

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

LE NOVITÀ Eppur si muove...61 Applicazioni ad alta disponibilità...62 Sicurezza...62

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Sistemi di Elaborazione delle Informazioni

Fondamenti di Informatica e Programmazione

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Lezione 13. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

A.A. 2018/2019. Introduzione a SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Lezione 12. Il trattamento dei dati. database: il linguaggio SQL seconda parte. Proff. Valle Folgieri

Basi di Dati Esercitazione JDBC

Tecnologie di Sviluppo per il Web

FUNZIONI PARAMETRI DEFINIZIONI DI PROCEDURE PROCEDURE

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Soluzione esercitazione 01

FUNZIONI. Dichiarazione: Definizione:

VARIABILI, ASSEGNAZIONE, DECISIONI

Argomenti Corso SAP Online ABAP Completo

Istruzioni DCL di SQL. Pag. 119 par.5

Corso sul linguaggio SQL

file:///c:/users/andrea/appdata/local/temp/mysql-1.html

CONNESSIONE DATABASE DI ACCESS IN AMBIENTE DELPHI 7. Massimo Caprabianca

Esercitazione 4 SQL: cataloghi e viste

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

ASP e Database. A cura di Michele Cavalieri

Laboratorio di PL/SQL

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

PHP e Structured Query Language

Introduzione. i trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne.

Query SQL - singola tabella

Laboratorio Progettazione Web Le funzioni in PHP. Andrea Marchetti IIT-CNR 2014/2015

SQLite. 2018/ Laboratorio 8. Massimo Lauria

Esercitazione 3 SQL.

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Soluzione 1a: definizione schema (semplificato) del database

Le Basi di Dati Attive

Esercitazione: Il DBMS MySQL. Insegnamento di Basi di Dati. Laurea in Ingegneria Informatica SAPIENZA Università di Roma

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

Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni

Lezione 9. Applicazioni tradizionali

Laboratorio di Progettazione Web

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Transcript:

PHP i5 #3 By SIRI : accesso adl DB2 IBMi

Agenda Il dialetto DB2 le estensioni PHP per DB2 connessione al DB2 esecuzioni di query su DB2 reperimento e gestione dato

DB2: dialetto sql Interrogazioni sul Database: [select] [sintassi db2] Per impostare un limite al record-set è possibile indicare, alla fine della query, fetch first n rows only questa opzione farà in modo di estrapolare solo n record dal record-set SELECT Cod_Modello FROM Veicoli WHERE Cilindrata<1400 FETCH FIRST 10 ROWS ONLY 3

DB2: dialetto sql Interrogazioni sul Database: [select] [sintassi db2] Per selezionare, da un record-set, un certo numero di record da n a n, è possibile filtrarne il risultato controllando il numero relativo di record all'interno del record-set stesso. Attraverso l'uso della sintassi: rrn(tabella) verrà recuperato il numero relativo di record SELECT Cod_Modello FROM Veicoli WHERE Cilindrata<1400 AND RRN(veicoli) between 11 and 20 4

DB2: dialetto sql riferimenti utili per la sintassi SQL specifica per DB è possibile trovarla su: http:// sqlzoo.net/ 5

DB2 & PHP l'estensione ibm_db2

DB2: ibm_db2 extension attivazione per attivare il collegamento con il DB2 è necessario sia installata l'estensione ibm_db2 check può essere attivata direttamente dallo ZendCore e, successivamente, verificata dalla funzione phpinfo() 7

DB2: ibm_db2 connessione db2_connect(string $database, string $uid, string $password, array[opzionale] $options) ritorna: resource connection a database parametri : database (ricorda!! wrkrdbdire) user password opzioni [facoltativo] (ma non troppo) 8

DB2: ibm_db2 connessione IMPORTANTE la valorizzazione dei seguenti parametri modifica le proprietà di collegamento al DB2 $options $options =array( =array( 'i5_naming'=>db2_i5_naming_off, 'i5_naming'=>db2_i5_naming_off, 'i5_lib'=>"nome 'i5_lib'=>"nome _libreria libreria_ dati", dati", 'db2_attr_case' 'db2_attr_case' => => DB2_CASE_LOWER, DB2_CASE_LOWER, 'cursor' 'cursor' => => DB2_SCROLLABLE, DB2_SCROLLABLE, ); ); 9

DB2: ibm_db2 controllo errori connessione db2_conn_errormsg(resource[optional] $connection) parametri: connection resource[optional] ritorna: stringa contenente l'ultimo messaggio di errore 10

DB2: ibm_db2 chiusura connessione function db2_close(resource $connection) ritorna: valore boolan se corretto parametri: connection resource 11

DB2 query esecuzione query sql

DB2: ibm_db2 esecuzione query (1 step) db2_exec(resource $connection, string $stmt_string, array[optional] $options); Parametri: connection resource stringa dell'istruzione sql array di opzioni [facoltativo] ritorna: resource statement 13

DB2: ibm_db2 esecuzione query (3 step) 1/3 db2_prepare(resource $connection, string $stm_string); Parametri: connection resource stringa dell'istruzione sql ritorna: resource statement 14

DB2: ibm_db2 esecuzione query (3 step) 2/3 db2_bind_param(resource $stmt, num_field, variable, DB2_PARAM_IN); Parametri: statement resource numero di valore (all'interno della stringa) nome variabile DB2_PARAM_IN 15

DB2: ibm_db2 esecuzione query (3 step) 3/3 db2_execute(resource $stmt); Parametri: statement resource ritorna: handle di risultato 16

DB2: ibm_db2 esempio di query <?php <?php // // creazione creazione dell'istruzione dell'istruzione sql sql $sql $sql = = "SELECT "SELECT field1, field1, field2, field2, field3 field3 FROM FROM table"; table"; // // esecuzione esecuzione dell'istruzione dell'istruzione $result=db2_exec($i5conn, $result=db2_exec($i5conn, $sql); $sql); //... //... //... //... 17

DB2: ibm_db2 esempio di query <?php <?php // // creazione creazione dell'istruzione dell'istruzione sql sql $sql $sql = = "SELECT "SELECT field1, field1, field2, field2, field3 field3 FROM FROM table"; table"; // // preparazione preparazione dell'istruzione dell'istruzione $stmt=db2_prepare($i5conn, $stmt=db2_prepare($i5conn, $sql); $sql); // // esecuzione esecuzione dell'istruzione dell'istruzione $result=db2_execute($stmt); $result=db2_execute($stmt); //... //... //... //... 18

DB2: ibm_db2 esempio di query <?php <?php $valore1 $valore1 = = 'pippo'; 'pippo'; $valore2 $valore2 = = 37; 37; // // creazione creazione dell'istruzione dell'istruzione sql sql $sql $sql = = "insert "insert into into table table (field1, (field1, field2, field2, field3) field3) values('valore',?,?)"; values('valore',?,?)"; // // preparazione preparazione dell'istruzione dell'istruzione $stmt=db2_prepare($i5conn, $stmt=db2_prepare($i5conn, $sql); $sql); // // bind bind dei dei parametri parametri db2_bind_param($stmt,1,'valore1',db2_param_in); db2_bind_param($stmt,1,'valore1',db2_param_in); db2_bind_param($stmt,2,'valore2',db2_param_in); db2_bind_param($stmt,2,'valore2',db2_param_in); // esecuzione dell'istruzione // esecuzione dell'istruzione $result=db2_execute($stmt); $result=db2_execute($stmt); //... //... 19

DB2: ibm_db2 controllo errori sql db2_stmt_error(resource[optional] $stmt) ritorna stringa contenente l'sqlstate ritornato dall'esecuzione di comando SQL parametri: statement resource[opzionale] ritorna: stringa contenente l'errore 20

DB2: ibm_db2 controllo errori sql db2_stmt_errormsg(resource[optional] $stmt) ritorna stringa contenente l'ultimo messaggio dell'sql parametri: statement resource[opzionale] ritorna: stringa contenente l'errore 21

DB2: ibm_db2 libera risorse db2_free_stmt(resource $stmt) libera le risorse allocate da statement resource parametri: resource statement ritorna: valore boolean se corretto 22

DB2 retrieve data ouput dei risultati

DB2: ibm_db2 reperimento dati db2_fetch_array(resource $stmt, int[optional] $row_number) Ritorna un'array di dati, indicizzati per posizione di colonna, che rappresenta una riga di un record set parametri: resource statement row_number [facoltativo] ritorna: array 24

DB2: ibm_db2 reperimento dati db2_fetch_assoc(resource $stmt, int[optional] $row_number) Ritorna un'array di dati, indicizzati per nome di colonna, che rappresenta una riga di un record set parametri: resource statement row_number [facoltativo] ritorna: array 25

DB2: ibm_db2 reperimento dati db2_fetch_both(resource $stmt, int[optional] $row_number) Ritorna un'array di dati, indicizzati per posizione e nome di colonna, che rappresenta una riga di un record set parametri: resource statement row_number [facoltativo] ritorna: array 26

DB2: ibm_db2 reperimento dati db2_fetch_row(resource $stmt, int[optional] $row_number) Ritorna un oggetto relativo al successivo record del recordset, o ad un record specifico parametri: resource statement row_number [facoltativo] ritorna: oggetto 27

DB2: ibm_db2 reperimento dati db2_result(resource $stmt, string $nome_colonna) Ritorna il contenuto di singola colonna da un recordset parametri: resource statement nome di colonna ritorna: valore colonna 28

DB2: ibm_db2 esempio array il valore di ritorno della funzione è un'array associativa <?php <?php //... //... //... //... while($row while($row = = db2_fetch_assoc($result)) db2_fetch_assoc($result)) { { //... //... print print $row['nome_colonna']; $row['nome_colonna']; //... //... } } 29

DB2: ibm_db2 esempio oggetto il valore di ritorno della funzione è un oggetto utilizzabile dalla funzione successiva <?php <?php //... //... //... //... while(db2_fetch_row($result)) while(db2_fetch_row($result)) { { //... //... $colonna $colonna = = db2_result($result,'nome_colonna'); db2_result($result,'nome_colonna'); print print $colonna; $colonna; //... //... } } 30

QUESTION TIME? Nome Nome Cognome Cognome Data Data

ARRIVEDERCI

TITOLO 33