# PHP/Programmazione/MySQL

PHP
Copertina Tutti i moduli · Sviluppo
    CopertinaPHP/Copertina
* IntroduzionePHP/Introduzione
** StoriaPHP/Introduzione/Storia
** Come funzionaPHP/Introduzione/Come funziona
* Installazione e configurazionePHP/Installazione e configurazione
** InstallazionePHP/Installazione
*** LinuxPHP/Installazione/Linux
*** WindowsPHP/Installazione/Windows
*** Mac OS XPHP/Installazione/Mac OS X
** ConfigurazionePHP/Configurazione
* ProgrammazionePHP/Programmazione
** CommentiPHP/Programmazione/Commenti
** VariabiliPHP/Programmazione/Variabili
** OperatoriPHP/Programmazione/Operatori
** ArrayPHP/Programmazione/Array
** CondizioniPHP/Programmazione/Condizioni
** CicliPHP/Programmazione/Cicli
** Funzioni di basePHP/Programmazione/Funzioni di base
** Funzioni personalizzatePHP/Programmazione/Funzioni personalizzate
** Variabili globaliPHP/Programmazione/Variabili globali
*** $GLOBALSPHP/Programmazione/Variabili globali/$GLOBALS
*** $_GETPHP/Programmazione/Variabili globali/$_GET
*** $_POSTPHP/Programmazione/Variabili globali/$_POST
*** $_SESSIONPHP/Programmazione/Variabili globali/$_SESSION
*** $_COOKIEPHP/Programmazione/Variabili globali/$_COOKIE
*** $_SERVERPHP/Programmazione/Variabili globali/$_SERVER
** FilePHP/Programmazione/File
** ImmaginiPHP/Programmazione/Immagini
** Espressioni regolariPHP/Programmazione/Regexp
** Programmazione orientata agli oggettiPHP/Programmazione/OOP
* Programmazione avanzata con le classi PEARPHP/PEAR
* PHP e i databasePHP/Database
** Funzioni PHP per l'accesso ai database
*** Funzioni MySQLPHP/Programmazione/MySQL
**** Accesso al databasePHP/Programmazione/MySQL/Accesso al database
**** QueryPHP/Programmazione/MySQL/Query
**** Risultati di una queryPHP/Programmazione/MySQL/Risultati di una query
**** Liberare memoria dai risultati di una queryPHP/Programmazione/MySQL/Liberare memoria dai risultati di una query
**** Chiudi connessione al dbPHP/Programmazione/MySQL/Chiudi connessione al db
*** Funzioni PostgreSQLPHP/PostgreSQL
**** Accesso al database
**** Query
**** Risultati di una query
*** Funzioni Sqlite
**** Accesso al database
**** Query
**** Risultati di una query
** Database e object oriented
*** Abstraction Layers
**** PDO - Php Data Objects
**** PEAR::MDB2
**** Creole
*** Object Relational Mapping (ORM)
**** PEAR:DB_DataObject
**** PEAR:DB_Table
**** Propel
* PHP Design PatternPHP/PHP Design Pattern
* SmartyPHP/Smarty
* Sicurezza delle applicazioni web
* PHP CLI: Command Line InterpreterPHP/Cli
* PHP GTK2: applicazioni desktop in PHPPHP/Gtk
* Crediti
Modifica il sommario
PHP, come già specificato, può accedere a database. Il tipo di database più utilizzato sul web è MySQL.

## Connessione ad un server mysql e selezione del database

Per la connessione al server, PHP ha una funzione specifica: mysql_connect, la cui sintassi è: mysql_connect(host_db, username, password);
Esempio:
Con questo codice, PHP tenta la connessione a localhost con l'username e la password forniti, in caso di fallimento, stampa il messaggio di errore.
Con questa funzione il PHP si connetterà a MySQL e sarà pronto per lavorare. Per selezionare il database su cui dobbiamo eseguire le nostre query abbiamo la funzione mysql_select_db: mysql_select_db(nomedb, [puntatore]);
Esempio:
Adesso PHP tenta la connessione al database test dal server localhost al quale ci siamo connessi prima. Nel caso il database non esistesse o in caso di errore, verrebbe inviato il messaggio "Database inesistente". Come potete vedere, in questo caso la funzione mysql_connect è stata assegnata alla variabile $db, che in questo caso diventa un puntatore di risorse. In questo modo, possiamo aprire più connessioni contemporanee assegnate a diversi puntatori.

## Esecuzione di query

Dopo aver aperto il database, possiamo eseguire delle operazioni con i dati presenti al suo interno (vedi MySQL), come la creazione o eliminazione di tabelle o inserimento e richiesta di dati. Per effettuare una richiesta dati MySQL al server si utilizza la funzione mysql_query:
Questo codice, recupera tutti i record della tabella registrati del database test sul server localhost. In caso di errore verrà visualizzato un messaggio contenente la descrizione dell'errore. È utile inserire la funzione mysql_query sempre in un puntatore (diverso da quello del database), per l'utilizzo dei dati

## Funzioni PHP - MySQL

Nel caso in cui avessimo bisogno di prendere dei dati da un database dovremo utilizzare la funzione mysql_fetch_array che crea un array con indice, i nomi delle colonne del database e come dati il primo dell'elenco dei risultati della query. Supponiamo di avere una tabella così strutturata:
Con questo codice:
verrà creato un array $risultato contenente solo una riga della tabella strutturato così:
* $risultato['Nome'] = "Tizio"
* $risultato['Cognome'] = "Rossi".
* $risultato['Data_nascita'] = "20/11/1957".
* $risultato['Città'] = "Milano".
Per vedere tutte le righe della tabella, bisogna fare così:
e allora la variabile $risultato sarà:
* $risultato[0]
** $risultato[0]['Nome'] = "Tizio"
** $risultato[0]['Cognome'] = "Rossi".
** $risultato[0]['Data_nascita'] = "20/11/1957".
** $risultato[0]['Città'] = "Milano".
* $risultato[1]
** $risultato[1]['Nome'] = "Caio"
** $risultato[1]['Cognome'] = "Bianchi".
** $risultato[1]['Data_nascita'] = "12/03/1985".
** $risultato[1]['Città'] = "Roma".
* $risultato[2]
** $risultato[2]['Nome'] = "Sempronio"
** $risultato[2]['Cognome'] = "Verdi".
** $risultato[2]['Data_nascita'] = "08/06/1967".
** $risultato[2]['Città'] = "Napoli".