Dutch PHP Conference 2025 - Call For Papers

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_queryEnvia uma consulta SQL ao MySQL sem buscar e armazenar em buffer as linhas de resultados

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

Descrição

mysql_unbuffered_query(string $query, resource $link_identifier = NULL): resource

mysql_unbuffered_query() envia a consulta SQL query para o MySQL sem buscar e armazenar automaticamente as linhas de resultados como mysql_query() faz. Isso economiza uma quantidade considerável de memória com consultas SQL que produzem grandes conjuntos de resultados, e o conjunto de resultados já pode ser processado imediatamente após a primeira linha ter sido recuperada, pois não será necessário esperar até que a consulta SQL completa seja executada. Para usar mysql_unbuffered_query() enquanto múltiplas conexões de banco de dados estão abertas, o parâmetro opcional link_identifier deve ser especificado para identificar qual conexão deve ser usada.

Parâmetros

query

A consulta SQL a ser executada.

Dados dentro da consulta devem ser adequadamente escapados.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Para instruções SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_unbuffered_query() retorna um resource em caso de sucesso, ou false em caso de erro.

Para outros tipos de instruções SQL, UPDATE, DELETE, DROP, etc., mysql_unbuffered_query() retorna true em caso de sucesso ou false em caso de erro.

Notas

Nota:

Os benefícios de mysql_unbuffered_query() têm um custo: mysql_num_rows() e mysql_data_seek() não podem ser usadas em um conjunto de resultados retornado de mysql_unbuffered_query() , até que todas as linhas sejam buscadas. Também é necessário buscar todas as linhas de resultados de uma consulta SQL sem buffer antes de enviar uma nova consulta SQL ao MySQL, usando o mesmo link_identifier.

Veja Também

add a note

User Contributed Notes 3 notes

up
3
frappyjohn at dos2linux dot org
21 years ago
Don't let the two hands confuse you, these are both advantages (they should really be on the same hand):

On the one hand, this saves a considerable amount of memory with SQL queries that produce large result sets.

On the other hand, you can start working on the result set immediately ...
up
3
crazyone at crazycoders dot net
16 years ago
You are NOT required to read all rows from the resultset when using unbuffered query, you may opt out at any time and use mysql_free_result. Imagine looking at 1 million row when the first 50 suffice? Just free the result and you are good to go again.
up
0
post at jfl dot dk
20 years ago
If using optimized MyISAM tables I guess there is a big advantage with this function as it is possible to do selects and inserts on the same time as long as no rows in the table gets updated.
To Top