# PHP/Programmazione/MySQL/Accesso al database

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
L'accesso al database può essere effettuato con due funzioni simili: mysql_connect e mysql_pconnect. La differenza saliente fra le due è che la seconda, rispetto alla prima, crea una connessione di tipo permanente. Una connessione permanente viene aperta e tenuta sempre in vita, mentre una non permanente viene svegliata soltanto nel momento in cui devono essere inviate query string e ricevuti dataset.
Le funzioni di connect accettano quattro parametri:
* hostname[:port] (string): il nome dell'host (o il relativo IP) eventualmente seguito dal numero di porta su cui risponde il server MySQL
* username (string): l'utente MySQL
* password (string): la password definita per l'utente specificato
* new_connect_flag (boolean): se questo parametro è impostato 'true' si intende che, nella situazione in si esegua una connect con parametri già utilizzati precedentemente nello script, verrà creato un nuovo identificatore di risorsa, invece di ritornare quello creato precedentemente.
Importante:
* utilizzate con diligenza la mysql_pconnect in quanto, se dimenticare di chiudere la connessione, questa rimarrà aperta anche dopo che lo script ha terminato la sua esecuzione
* non utilizzare il parametro new_connection_flag se non è estremamente necessario in quanto i server MySQL sono di solito configurati per gestire circa 30-100 connessioni
Entrambe le funzioni ritornano un intero che definisce la risorsa (resource identifier). Questo valore dovrebbe essere salvato in una variabile e passato a tutte le funzioni che lo richiedano come parametro. Di fatto il parametro è opzionale in quanto il modulo per MySQL di PHP tiene traccia dei parametri di connessione utilizzati (se si aprono più connessioni memorizza i più recenti) ed esegue le operazioni necessarie per tenere aperta una connessione ad ogni invio di query.
Una volta aperta la connessione è possibile, ma non necessario, scegliere il database da utilizzare chiamando la funzione mysql_select_db, pseudonimo della query "USE DATABASE my_little_db".
Per i programmatori più esperti e negli ambiti di applicazioni a carattere enterprise, un consiglio è quello di utilizzare uno stereotipo poco in voga ma veramente utile. È necessario creare un file di init seguendo l'esempio
Inserite nel vostro script (preferibilmente nel file delle configurazioni, come è consono per applicazioni di grosse dimensioni) il seguente segmento di codice