|
resource mysql_list_tables ( string database [, resource identificativo_connessione])
mysql_list_tables() accetta un nome di database e restituisce un risultato puntatore in modo molto
simile alla funzione mysql_query(). Usare la funzione mysql_tablename() per esplorare questo
risultato puntatore o qualsiasi funzione per i risultati delle tabelle, come mysql_fetch_array().
Il parametro database è il nome del database da cui recuperare la lista di tabelle. in caso di errore,
mysql_list_tables() restituisce FALSE.
<?php
$nome_db = 'nome_db_mysql';
if (!mysql_connect('host_mysql', 'utente_mysql', 'password_mysql')) {
print 'Connessione a mysql non riuscita';
exit;
}
$risultato = mysql_list_tables($nome_db);
if (!$risultato) {
print "Errore database, Impossibile elencare le tabelle\n";
print 'Errore MySQL: ' . mysql_error();
exit;
}
while ($riga = mysql_fetch_row($risultato)) {
print "Tabella: $riga[0]\n";
}
mysql_free_result($risultato);
?>
int mysql_num_fields ( resource risultato)
mysql_num_fields() restituisce il numero di campi in un risultato.
Vedere anche: mysql_select_db(), mysql_query(), mysql_fetch_field() e
mysql_num_rows().
int mysql_num_rows ( resource risultato)
mysql_num_rows() restituisce il numero di righe in un risultato. Questo comando è valido solo per le
istruzioni SELECT. Per recuperare il numero di righe coinvolte dalle query INSERT, UPDATE o DELETE,
usare mysql_affected_rows().
<?php
$connessione = mysql_connect("localhost", "utente_mysql",
"password_mysql");
mysql_select_db("database", $connessione);
$risultato = mysql_query("SELECT * FROM tabella1", $connessione);
$num_righe = mysql_num_rows($risultato);
echo "$num_righe Righe\n";
?>
resource mysql_pconnect ( [string server [, string nome_utente [, string password [, int flag_client]]]])
Restituisce un identificativo di connessione MySQL valido in caso di successo oppure FALSE in caso di
errore.
mysql_pconnect() stabilisce una connessione ad un server MySQL. I seguenti valori predefiniti sono
usati per i parametri opzionali mancanti: server = 'localhost:3306', nome_utente = nome dell'utente
prprietario del processo server e password = password vuota. Il parametro flag_client può essere una
combinazione delle costanti MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE o
MYSQL_CLIENT_INTERACTIVE.
Il parametro server può includere una numero di porta. Es. "hostname:porta" o un percorso ad un socket es.
":/percorso/a/socket" per il localhost.
Nota: Il supporto per ":porta" è stato aggiunto nel PHP 3.0B4.
Il supporto per ":/percorso/a/socket" è stato aggiunto nel PHP 3.0.10.
mysql_pconnect() agisce in modo molto simile a mysql_connect() con due differenze principali.
•quando si connette, la funzione tenta innanzitutto di trovare una connessione (persistente) già aperta
avente gli stessi host, username e password. Se viene trovata una connessione, viene restituito un
identificativo a questa anziché aprirne una nuova.
•la connessione al server SQL non sarà chiusa quando l'esecuzione dello script termina. La connessione
rimane invece aperta per usi futuri (mysql_close() non chiuderà le connessioni stabilite da
mysql_pconnect()).
Il parametro opzionale flag_client è diventato disponibile nel PHP 4.3.0.
Questo tipo di link è perciò chiamato 'persistente'.
Attenzione!
L'uso di connessioni persistenti può richiedere un po' di messa a punto delle configurazioni di Apache e
MySQL per assicurarsi di non eccedere il numero di connessioni consentite da MySQL.
bool mysql_ping ( [resource identificativo_connessione])
mysql_ping() controlla se una connessione al server funziona o meno. Se questa è caduta, viene tentata
una riconnessione automatica. Questa funzione può essere usata dagli script che rimangono inattivi per un
lungo periodo per controllare se il server ha chiuso la connessione o meno e riconnettersi se necessario.
mysql_ping() restituisce TRUE se la connessione al server è funzionante, altrimenti FALSE.
resource mysql_query ( string query [, resource identificativo_connessione [, int modo_risultato]])
mysql_query() invia una query al database attualmente attivo sul server associato all'identificativo di
connessione specificato. Se identificativo_connessione non è specificato, viene considerata l'ultima
connessione aperta. Se nessuna connessione è aperta, la funzione prova a stabilire una connessione come se
mysql_connect() fosse richiamata senza argomenti ed usa questa.
Il paramentro opzionale modo_risultato può essere MYSQL_USE_RESULT e MYSQL_STORE_RESULT.
Il valore predefinito MYSQL_STORE_RESULT, così il risultato è bufferato. Vedere anche
mysql_unbuffered_query() per la controparte di questo comportamento.
Nota: La stringa della query non dovrebbe terminare con un punto e virgola.
Solo 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 valore
restituito diverso da FALSE indica che la query era lecita ed è stata eseguita dal server. Questo non indica
niente riguardo il numero di righe coinvolte o restituite. è assolutamente possibile che una query abbia
successo ma che non coinvolga o restituisca nessuna riga.
mysql_query() fallisce e restituisce FALSE anche se non si hanno i permessi per accedere alle tabelle
cui la query fa riferimento.
Assumendo che la query abbia successo, si può richiamare mysql_num_rows() per scoprire quante righe
sono state restituite da un'istruzione SELECT o mysql_affected_rows() per scoprire quante righe
sono state coinvolte da un'istruzione DELETE, INSERT, REPLACE o UPDATE.
Solo per le istruzioni SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() restituisce un nuovo
identificativo di risultato che si può passare a mysql_fetch_array() e ad altre funzioni che si
occupano dei risultati delle tabelle. Quando si conclude il trattamento del risultato, si possono liberare le
risorse associate ad esso richiamando mysql_free_result(). Comunque la memoria sarà liberata
automaticamente Al termine dell'esecuzione dello script.
mixed mysql_result ( resource risultato, int campo [, mixed campo])
mysql_result() restituisce i contenuti di una cella da un risultato MySQL. L'argomento campo può
essere l'indice o il nome del campo oppure il nome della tabella ed il nome del campo separati da un punto
(nome_tabella.nome_campo). Se il nome della colonna ha un alias ('select foo as bar from...'), usare l'alias al posto del nome della colonna.
Quando si lavora con un risultato di grandi dimensioni, si dovrebbero considerare l'uso delle funzioni che
caricano l'intera riga. Poiché queste funzioni restituiscono i contenuti di celle multiple in una chiamata a
funzione, sono MOLTO più veloci di mysql_result(). Notare anche che specificare un indice numerico
per l'argomento campo è molto più veloce che specificare un argomento del tipo nome_di_campo o
nome_tabella.nome_campo.
Le chiamate a mysql_result() non dovrebbero essere mescolate con chiamate ad altre funzioni che
hanno a che fare con i risultati.
Alternative raccomandate per alte prestazioni: mysql_fetch_row(), mysql_fetch_array() e
mysql_fetch_object().
bool mysql_select_db ( string nome_database [, resource identificativo_connessione])
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_select_db() imposta il database attualmente attivo sul server associato all'identificativo di
connessione specificato. Se nessun identificativo di connessione è specificato, viene considerata l'ultima
connessione aperta. Se nessuna connessione è aperta, la funzione proverà a stabilire una connessione come se
mysql_connect() fosse richiamata senza argomenti ed userà questa.
Ogni chiamata successiva a mysql_query() sarà fatta sul database attivo.
Vedere anche: mysql_connect(), mysql_pconnect() e mysql_query().
string mysql_stat ( [resource identificativo_connessione])
mysql_stat() restituisce l'attuale stato del server.
Nota: mysql_stat() attualmente restituisce solo le seguenti informazioni: uptime, thread, query, tabelle
aperte, tabelle svuotate e query al secondo. Per una lista completa delle altre variabili di stato si usi il
comando SQL SHOW STATUS.
<?php
$connessione = mysql_connect('localhost', "utente_mysql",
"password_mysql");
$stato = explode(' ', mysql_stat($connessione));
print_r($stato);
?>
L'esempio riportato sopra dovrebbe produrre il seguente output: Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)
string mysql_tablename ( resource risultato, int i)
mysql_tablename() prende il puntatore risultato dalla funzione mysql_list_tables() come un
indice intero e restituisce il nome di una tabella. La funzione mysql_num_rows() può essere usata per
determinare il numero di tabelle nel risultato puntatore. Usare la funzione mysql_tablename() per
esplorare questo risultato puntatore o qualsiasi funzione per i risultati delle tabelle, come
mysql_fetch_array
<?php
mysql_connect("localhost", "utente_mysql", "password_mysql");
$risultato = mysql_list_tables("mio_db");
for ($i = 0; $i < mysql_num_rows($risultato); $i++)
printf ("Tabella: %s\n", mysql_tablename($risultato, $i));
mysql_free_result($risultato);
?>
int mysql_thread_id ( [resource identificativo_connessione])
mysql_thread_id() restituisce l'attuale thread ID. Se La connessione è persa a ci si riconnette con
mysql_ping(), il thread ID cambia. Questo significa che non si dovrebbe ottenere il thread ID e
memorizzarlo per impieghi successivi. Si dovrebbe rilevare il thread ID quando è necessario.
<?php
$connessione = mysql_connect('localhost', 'utente_mysql',
'password_mysql');
$thread_id = mysql_thread_id($connessione);
if ($thread_id){
printf ("L'attuale thread è %d\n", $thread_id);
}
?>
L'esempio riportato sopra dovrebbe produrre il seguente output: L'attuale thread è 73
resource mysql_unbuffered_query ( string query [, resource identificativo_connessione [, int modo_risultato]])
mysql_unbuffered_query() invia query a MySQL senza caricare e bufferare le righe risultanti
automaticamente come fa mysql_query(). Da una parte, questo risparmia un considerevole quantità di
memoria con le query SQL che producono risultati di grandi dimensioni. Dall'altra parte, si può iniziare
l'elaborazione dei risultati immediatamente dopo che la prima riga è stata recuperata: non si deve attendere
finché la quei SQL sia completamente eseguita. Quando si usano diverse connessioni a database, si deve
specificare il parametro opzionale identificativo_connessione.
Il parametro opzionale modo_risultato può essere MYSQL_USE_RESULT e
MYSQL_STORE_RESULT. Il valore predefinito è MYSQL_USE_RESULT, quindi il risultato non è
bufferato. Vedere anche mysql_query() per la controparte di questo comportamento.
|