MySQL Functions
Introduzione
Queste funzioni consentono l'accesso ai server di database MySQL. Maggiori informazioni riguardo MySQL possono essere trovate su » https://www.mysql.com/.
La documentazione su MySQL può essere trovata su » https://dev.mysql.com/doc/.
Requisiti
Al fine di rendere queste funzioni disponibili, si deve compilare PHP con il supporto MySQL.
Installazione
Usando l'opzione di configurazione --with-mysql[=DIR] si abilita PHP l'accesso ai database MySQL.
In PHP 4, il parametro --with-mysql è abilitato per default. Per disabilitarlo si può utilizzare --without-mysql . Inoltre in PHP 4, se si abilita MySql senza indicare il percorso directory di installazione di MySql, il PHP utilizzerà le librerie incluse nella distribuzione. In Windows non vi sono DLL, è semplicemente compilato nel PHP. Gli utenti che eseguano altre applicazioni basate su MySql (come, ad esempio, auth-mysql), non dovrebbero utilizzare le librerie allegate al PHP, ma, piuttosto, indicare il percorso alla directory di instalalzione di MySQL, come, ad esempio; --with-mysql=/percorso/a/mysql. Questo forzerà  PHP ad usare le librerie client installate da MySQL evitando ogni conflitto.
In PHP 5, MySQL non sarà più abilitato per default, e nè la libreria MySQL sarà allegata al PHP. Per maggiori dettagli sul perchè leggere: FAQ.
Questo modulo di interfaccia a MySQL non supporta completamente le tutte le funzioni presenti nelle versioni di MySQL successive alla 4.1.0. Per avere il pieno supporto a queste vedere MySQLi.
Se si desidera installare sia il modulo mysql sia il modulo mysqli utilizzare la stessa libreria client per evitare conflitti.
Problemi di blocco e di avvio di PHP possono essere riscontrati quando si carica questa estensione insieme ad estensioni recode. Vedere anche l'estensione recode per maggiori informazioni.
Nota: Se occorre utilizzare set di caratteri differenti rispetto al latin (il default), si deve installare la libreria esterna (non allegata al PHP) libmysql compilata con il supporto dei set di caratteri.
Configurazione di Runtime
Il comportamento di queste funzioni è influenzato dalle impostazioni di php.ini.
Nome | Predefinito | Modificabile in |
---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "0" | PHP_INI_SYSTEM |
Breve descrizione dei parametri di configurazione.
- mysql.allow_persistent boolean
-
Determina se consentire le connessioni persistenti a MySQL.
- mysql.max_persistent integer
-
Il numero massimo di connessioni persistenti MySQL per processo.
- mysql.max_links integer
-
Il numero massimo di connessioni MySQL per processo, incluse le connessioni persistenti.
- mysql.default_port string
-
Il numero di porta TCP predefinito da usare per connettersi ad un server di database se nessuna altra porta viene specificata. Se nessun valore predefinito e specificato, la porta sarà ottenuta dalla variabile d'ambiente MYSQL_TCP_PORT, dalla voce mysql-tcp in /etc/services o dalla costante MYSQL_PORT in fase di compilazione, in questo ordine. Win32 userà solo la costante MYSQL_PORT.
- mysql.default_socket string
-
Il nome del socket predefinito da usare per connettersi ad un server di database locale se nessun altro nome di socket viene specificato.
- mysql.default_host string
-
L'host di default del server da usare per connettersi al server di database se nessun altro host viene specificato. Non si applica in safe mode.
- mysql.default_user string
-
Il nome utente predefinito da usare per connettersi al server di database se nessun altro nome viene specificato. Non si applica in safe mode.
- mysql.default_password string
-
La password predefinita da usare per connettrsi al server di database se nessuna altra password viene specificata. Non si appplica in safe mode.
- mysql.connect_timeout integer
-
Timeout di connessione in secondi. Per Linux questo timeout è usato anche per attendere la prima risposta dal server.
Tipi di risorse
Ci sono due tipi di risorsa usati nel modulo MySQL. Il primo è l'identificativo di connessione per una connessione ad un database, del secondo tipo sono le risorse che contengono i risultati di una query.
Costanti predefinite
Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.
Fin dal PHP 4.3.0 è possibile specificare flag addizionali per il client per le funzioni mysql_connect() e mysql_pconnect(). Sono definite le seguenti costanti:
Costante | Descrizione |
---|---|
MYSQL_CLIENT_COMPRESS | Usa la compressione del protocollo |
MYSQL_CLIENT_IGNORE_SPACE | Consente lo spazio dopo i nomi delle funzioni |
MYSQL_CLIENT_INTERACTIVE | Lascia trascorrere interactive_timeout secondi (anziché wait_timeout) di inattività prima di chiudere la connessione |
La funzione mysql_fetch_array() usa una costante per i diversi tipi di array risultato. Sono definite le seguenti costanti:
Costante | Descrizione |
---|---|
MYSQL_ASSOC | Le colonne sono restituite in un array avente il nome del campo come indice dell'array |
MYSQL_BOTH | Le colonne sono restituite in un array avente sia un indice numerico sia un indice costituito dal nome del campo |
MYSQL_NUM | Le colonne sono restituite in un array avente un indice numerico per i campi. Questo indice inizia da 0, il primo campo nel risultato |
Esempi
Questo esempio mostra come connettersi, eseguire una query, stampare le righe risultanti e disconnettersi dal database MySQL.
Example#1 Esempio dell'estensione MySQL
<?php
/* Connessione e selezione del database */
$connessione = mysql_connect("host_mysql", "utente_mysql", "password_mysql")
or die("Connessione non riuscita: " . mysql_error());
print "Connesso con successo";
mysql_select_db("mio_database") or die("Selezione del database non riuscita");
/* Esecuzione di una query SQL */
$query = "SELECT * FROM mia_tabella";
$risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
/* Stampa dei risultati in HTML */
echo "<table>\n";
while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($linea as $valore_colonna) {
echo "\t\t<td>$valore_colonna</td>\n";
}
echo "\t</tr>\n";
}
print "</table>\n";
/* Liberazione delle risorse del risultato */
mysql_free_result($risultato);
/* Chiusura della connessione */
mysql_close($connessione);
?>
Indice dei contenuti
- mysql_affected_rows — Ottiene il numero di righe coinvolte nelle precedenti operazioni MySQL
- mysql_change_user — Cambia l'utente della connessione attiva
- mysql_client_encoding — Restituisce il nome del set di caratteri
- mysql_close — Chiude una connessione MySQL
- mysql_connect — Apre una connessione ad un server MySQL
- mysql_create_db — Crea un database MySQL
- mysql_data_seek — Muove il puntatore interno del risultato
- mysql_db_name — Ottiene dei dati dal risultato
- mysql_db_query — Invia una query MySQL
- mysql_drop_db — Elimina (cancella) un database MySQL
- mysql_errno — Restituisce il valore numerico del messaggio di errore della precedente operazione MySQL
- mysql_error — Restituisce il testo del messagio di errore della precedente operazione MySQL
- mysql_escape_string — Aggiunge le sequenze di escape in una stringa per l'uso in mysql_query.
- mysql_fetch_array — Carica una riga del risultato come un array associativo, un array numerico o entrambi.
- mysql_fetch_assoc — Carica una riga del risultato come array associativo
- mysql_fetch_field — Ottiene informazioni sulla colonna da un risultato e le restituisce come oggetto
- mysql_fetch_lengths — Ottiene la lunghezza di ogni output nel risultato
- mysql_fetch_object — Carica una riga del risultato come un ogetto
- mysql_fetch_row — Ottiene una riga del risultato come un array enumerato
- mysql_field_flags — Ottine i flag associati al campo specificato di un risultato
- mysql_field_len — Restituisce la lunghezza del campo specificato
- mysql_field_name — Ottiene il nome del campo specificato in un risultato
- mysql_field_seek — Imposta il puntatore al risultato ad un determinato indice di campo
- mysql_field_table — Ottiene il nome della tabella in cui si trova il campo specificato
- mysql_field_type — Ottiene il tipo del campo specificato in un risultato
- mysql_free_result — Libera la memoria occupata dal risultato
- mysql_get_client_info — Ottine informazioni sul client MySQL
- mysql_get_host_info — Ottiene le informazioni sull'host MySQL
- mysql_get_proto_info — Ottiene le informazion sul protocollo MySQL
- mysql_get_server_info — Ottiene le informazioni sul server MySQL
- mysql_info — Ottiene le informazioni relative alla query più recente.
- mysql_insert_id — Ottiene l'identificativo generato dalla precedente operazione INSERT
- mysql_list_dbs — Elenca i database disponibili in un server MySQL
- mysql_list_fields — Elenca i campi di un risultato MySQL
- mysql_list_processes — Elenca i processi MySQL
- mysql_list_tables — Elenca le tabelle in un database MySQL
- mysql_num_fields — Ottiene il numero di campi nel risultato
- mysql_num_rows — Ottiene il numero di righe in un risultato
- mysql_pconnect — Apre una connessione persiostente ad un server MySQL
- mysql_ping — Esegue un ping su una connessione al server o riconnette se non non esiste la connessione
- mysql_query — Invia una query MySQL
- mysql_real_escape_string — Aggiunge le sequenze di escape ai caratteri speciali in una stringa per l'uso in una istruzione SQL, tenendo conto dell'attuale set di caratteri della connessione.
- mysql_result — Ottiene i dati dal risultato
- mysql_select_db — Seleziona un database MySQL
- mysql_set_charset — Sets the client character set
- mysql_stat — Ottiene l'attuale stato del sistema
- mysql_tablename — Ottiene il nome della tabella
- mysql_thread_id — Restituisce l'attuale thread ID
- mysql_unbuffered_query — Invia una query SQL a MySQL senza caricare e bufferare le righe risultanti