14

Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Embed Size (px)

Citation preview

Page 1: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Page 2: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Interazione col DBPer interagire con una base dati da una

pagina PHP occorre procedere come segue:

Eseguire la connessione al DBMS MySQL in ascolto;

Selezionare la base dati su cui si vuole operare;

Richiedere l’ecuzione delle query e gestire i risultati restituiti.

Page 3: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Connessione al DBMS (1/3)La connessione al DBMS viene effettuata

tramite la funzione mysql_connect() che restituisce un identificativo di connessione MySQL in caso di successo oppure FALSE in caso di fallimento.

La sintassi di tale funzione èresource mysql_connect ( [string server [,

string nome_utente [, string password [, bool nuova_connessione [, int client_flags]]]]] )

Il significato dei parametri è il seguente:

Page 4: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Connessione al DBMS(2/3)resource rappresenta un identificatore della connessione

col DB (da utilizzare nelle chiamate alle successive funzioni di interrogazione) e FALSE in caso di fallimento

server rappresenta il nome host del database server e relativa porta. Default: localhost:3306;

nome_utente è il nome dell'utente per il login al database. Di default corrisponde all'utente che possiede il processo corrente.

password è la password per il login al database. Di default è una stringa vuota;

nuova_connessione di default, se viene effettuata una seconda chiamata a mysql_connect con gli stessi parametri, non viene aperta una nuova connessione ma la funzione restituisce l'ID della connessione esistente. Se questo parametro è impostato a TRUE viene aperta una nuova connessione ad ogni chiamata.

Page 5: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Connessione al DBMS(3/3)La connessione al server sarà chiusa non prima

della fine dell'esecuzione dello script, a meno che questa non sia precedentemente chiusa esplicitamente richiamando mysql_close().

Un esempio di connessione è il seguente:<?php

    $connessione = mysql_connect("localhost", "utente_mysql", "password_mysql")        or die("Connessione non riuscita: " . mysql_error());    print ("Connesso con successo");    mysql_close($connessione);?>

Page 6: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Selezione della base datiSe la connessione al DBMS è avvenuta con

successo allora è possibile procedere alla selezione della base dati su cui si intende operare.

Per fare ciò occorre utilizzare la funzione mysql_select_db().

La sintassi di tale funzione è la seguente:bool mysql_select_db ( string nome_database [,

resource identificativo_connessione] )Tale funzione imposta il database attualmente

attivo sul server associato all'identificativo di connessione specificato.

Se nessin identificativo di connesione è specificato, viene considerata l'ultima connessione aperta.

Page 7: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Esempio di selezioneUn esempio di selezione della base dati è dato

dalla seguente porzione di codice:…….$connessione = mysql_connect("host_mysql", "ut

ente_mysql", "password_mysql")        or die("Connessione non riuscita: " . mysql_error());    print "Connesso con successo";mysql_select_db("mio_database“, $connessione) or die("Selezione del database non riuscita");

…..

Page 8: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Esecuzione delle queryDopo aver selezionato la base dati su cui agire è

possibile interagire con essa tramite la richiesta di esecuzione di una più query.

L’esecuzione di comandi SQL avviene attraverso la seguente funzione mysql_query().

La sintassi di tale funzione è la seguente:resource mysql_query ( string query [, resource

identificativo_connessione [, int modo_risultato]] )Tale funzione invia una query al database

attualmente attivo sul server associato all'identificativo di connessione specificato . Se nessun identificativo è specificato viene considerata l'ultima connessione aperta.

Page 9: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Esecuzione delle querySolo per le istruzioni SELECT, SHOW, EXPLAIN

o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non è stata eseguita correttamente.

Per altri tipi di istruzioni SQL, mysql_query() restituisce TRUE in caso di successo e FALSE in caso di errore.

Un esempio di utilizzo della suddetta funzione è:<?php

$risultato = mysql_query("SELECT mia_colonna FROM mia_tabella")    or die("Query non valida: " . mysql_error());?>

Page 10: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Gestione dei risultatiSe la query ha successo è possibile richiamare

le seguenti funzioni:mysql_num_rows() per scoprire quante righe

sono state restituite da un'istruzione SELECT, ad esempio;

mysql_affected_rows() per scoprire quante righe sono state coinvolte da un'istruzione DELETE, INSERT, REPLACE o UPDATE;

mysql_fetch_array () carica una riga del risultato come un array associativo, un array numerico o entrambi;

mysql_fetch_row () ottiene una riga del risultato come un array enumerato.

Page 11: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Gestione dei risultati Un esempio di gestione dei risultati è il seguente:

$sql = "SELECT codice, descrizione FROM prodotti";

$result = mysql_query($sql);$array = mysql_fetch_array($result);print "CODICE: ".$array['codice']."<br>";print "DESCRIZIONE: ".

$array['descrizione']."<br>";

Page 12: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Gestione dei risultatiInfatti, eseguendo il comando

print_r( mysql_fetch_array($result) )si otterrebbe il seguente output:Array (

[0] => 0001 [codice] => 0001 [1] => Computers [descrizione] =>Computers

)

Page 13: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Gestione dei risultatiUn esempio di gestione dei risultati è il

seguente:

$sql = "SELECT codice, descrizione FROM prodotti";

$result = mysql_query($sql);$array = mysql_fetch_row($result);print "CODICE: ".$array[0]."<br>";print "DESCRIZIONE: ".$array[1]."<br>";

Page 14: Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;

Ottenere l’ID dell’ultimo record inserito$sql = "INSERT INTO categoria (id,

descrizione) VALUES (NULL, '".$_POST['descrizione']."')"; // sia id di tipo AUTO_INCREMENT$result = mysql_query ($sql);$new_id_cat = mysql_inserted_id();$sql = "INSERT INTO prodotto (id, id_categoria, descrizione) VALUES (NULL, '$new_id_cat', '".$_POST['descrizione']."')"; // sia id di tipo AUTO_INCREMENT$result = mysql_query ($sql);