MYSQL_RES *mysql_use_result(MYSQL *mysql)
Descrição
Você deve chamar mysql_store_result()
ou
mysql_use_result()
para cada consulta que
retornar data com sucesso (SELECT
,
SHOW
, DESCRIBE
,
EXPLAIN
).
mysql_use_result()
inicicia a recuperação
de um resultado mas não lê realmente o resultado no cliente
como mysql_store_result()
faz. Cada
regiostro deve ser recuperado individualmente fazendo chamadas
a mysql_fetch_row()
. Ele lê o resultado de
uma consulta diretamente do servidor sem armazenar em uma
tabela temporária ou em um buffer local, o o que é mais
rápido e utiliza menos memória que
mysql_store_result()
. O cliente sío irá
alocar memória para o registro atual para o buffer de
comunicação que pode crescer para
max_allowed_packet
bytes.
Por outro lado , você não deve utilizar
mysql_use_result()
se você estiver fazendo
vários processamentos para cada registros no lado do cliente,
ou se a saída é enviada para a tela, na qual o usuário de
digitar um ^S
(parada de tela). Isto irá
prender o servidor e impedir outras threads de atualizar
qualquer tabela na qual o dados esteja sendo buascado.
Ao usar mysql_use_result()
, você deve
executar mysql_fetch_row()
até um valor
NULL
ser retornado, senão, os registros
não buscados retornarão como part do resultado de sua
próxima consulta. A API C fornecerá o erro Commands
out of sync; you can't run this command now
se você
esquecer de fazê-lo.
Você não pode utilizar mysql_data_seek()
,
mysql_row_seek()
,
mysql_row_tell()
,
mysql_num_rows()
, ou
mysql_affected_rows()
com m resultado
retornado de mysql_use_result()
, nem pode
executar outras consultas até que
mysql_use_result()
tenha finalizado. (No
entanto, depois de buscar todos os regitros,
mysql_num_rows()
retornará corretamente o
número de regiostros buscados).
Você deve chamar mysql_free_result()
após
terminar de utilizar o resultado.
Valor Retornado
Uma estrutura de resultado MYSQL_RES
.
NULL
se ocorrer um erro.
Erros
mysql_use_result()
zera
mysql_error
e
mysql_errno
se ela obter sucesso.
CR_COMMANDS_OUT_OF_SYNC
Os comando foram executados em uma ordem inpropriada.
CR_OUT_OF_MEMORY
Sem memória.
CR_SERVER_GONE_ERROR
O servidor MySQL foi finalizado.
CR_SERVER_LOST
A conexão ao servidor MySQL foi perdida durante a consulta.
CR_UNKNOWN_ERROR
Um erro desconhecido ocorreu.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.