Função PHP mysql_unbuffered_query()
Definição e uso
A função mysql_unbuffered_query() envia uma consulta SQL ao MySQL (não obtém / armazena resultados).
Sintaxe
mysql_unbuffered_query(query,conexão)
Parâmetro | Descrição |
---|---|
query | Obrigatório. Define a consulta SQL a ser enviada. Nota: a string de consulta não deve terminar com ponto e vírgula. |
conexão | Opcional. Define o identificador de conexão SQL. Se não for especificado, usará a conexão aberta anterior. |
Descrição
mysql_unbuffered_query() envia uma consulta SQL ao MySQL, mas não como mysql_query() para automaticamente obter e armazenar em cache o conjunto de resultados. De um lado, isso economiza uma quantidade significativa de memória ao lidar com conjuntos de resultados grandes. Do outro lado, é possível operar no conjunto de resultados imediatamente após obter a primeira linha, sem esperar que a consulta SQL completa seja executada.
Quando se usa várias conexões de banco de dados, deve-se especificar o parâmetro opcional conexão.
Dicas e observações
Observação:A desvantagem da mysql_unbuffered_query() é que não pode ser usada sobre o conjunto de resultados retornado pela mysql_unbuffered_query(): mysql_num_rows() e mysql_data_seek()Além disso, antes de enviar uma nova consulta SQL ao MySQL, é necessário extrair todas as linhas de resultados geradas por todas as consultas SQL não armazenadas em cache.
Exemplo
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Não foi possível conectar: ' . mysql_error()); } // Consulta grande $sql = "SELECT * FROM Person"; mysql_unbuffered_query($sql,$con); // Início do processamento de dados... mysql_close($con); ?>