Funzione PHP mysql_unbuffered_query()
Definizione e utilizzo
La funzione mysql_unbuffered_query() invia una query SQL a MySQL (senza ottenere / memorizzare i risultati).
Sintassi
mysql_unbuffered_query(query,connessione)
Parametro | Descrizione |
---|---|
query | Obbligatorio. Specifica la query SQL da inviare. Nota: la stringa di query non dovrebbe finire con un punto e virgola. |
connessione | Opzionale. Specifica l'identificatore della connessione SQL. Se non specificato, viene utilizzata l'ultima connessione aperta. |
Spiegazione
mysql_unbuffered_query() invia una query SQL a MySQL, ma non come mysql_query() per ottenere automaticamente e cache il set di risultati. Da un lato, questo può risparmiare una quantità significativa di memoria durante la gestione di grandi set di risultati. Dall'altro lato, è possibile operare sul set di risultati immediatamente dopo aver ricevuto la prima riga, senza aspettare che l'intera query SQL sia eseguita.
Quando si utilizzano più connessioni database, è necessario specificare il parametro opzionale connessione.
Suggerimenti e note
Nota:Il vantaggio di mysql_unbuffered_query() ha un costo: non è possibile utilizzare mysql_num_rows() e mysql_data_seek(). Inoltre, prima di inviare una nuova query SQL a MySQL, è necessario estrarre tutte le righe di risultato generate da tutte le query SQL non cached.
Esempio
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Impossibile connettersi: ' . mysql_error()); } // Query grande $sql = "SELECT * FROM Person"; mysql_unbuffered_query($sql,$con); // Inizio del processo di dati... mysql_close($con); ?>