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);
?>