mysqli::store_result
mysqli_store_result
(PHP 5, PHP 7, PHP 8)
mysqli::store_result -- mysqli_store_result — Transfere um conjunto de resultados da última consulta
Descrição
Estilo orientado a objetos
Estilo procedural
Transfere o conjunto de resultados da última consulta na conexão do banco de dados
representada pelo parâmetro mysql
para ser usado com a
função mysqli_data_seek().
Parâmetros
-
mysql
Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()
mode
-
A opção que você deseja definir. A partir do PHP 8.1, este parâmetro não tem efeito. Pode ser um dos seguintes valores:
Valid options Nome Descrição MYSQLI_STORE_RESULT_COPY_DATA
Copia os resultados do buffer mysqlnd interno nas variáveis PHP buscadas. Por padrão, o mysqlnd usará uma lógica de referência para evitar copiar e duplicar os resultados mantidos na memória. Para certos conjuntos de resultados, por exemplo, conjuntos de resultados com muitas linhas pequenas, a abordagem de cópia pode reduzir o uso geral de memória porque as variáveis PHP que contêm resultados podem ser liberadas mais cedo (disponível apenas com mysqlnd)
Valor Retornado
Retorna um objeto de resultado armazenado em buffer ou false
se ocorreu um erro.
Note:
mysqli_store_result() retorna
false
caso a consulta não retorne um conjunto de resultados (se a consulta for, por exemplo, uma instrução INSERT). Esta função também retornafalse
se a leitura do conjunto de resultados falhou. Você pode verificar se houve um erro verificando se mysqli_error() não retorna uma string vazia, se mysqli_errno() retorna um valor diferente de zero ou se mysqli_field_count() retorna um valor diferente de zero. Além disso, a possível razão para esta função retornarfalse
após uma chamada bem-sucedida para mysqli_query() pode ser um conjunto de resultados muito grande (a memória para ele não pode ser alocada). Se mysqli_field_count() retornar um valor diferente de zero, a instrução deve ter produzido um conjunto de resultados não vazio.
Erros/Exceções
Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR
) e a operação solicitada falhar,
um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT
,
uma exceção mysqli_sql_exception será lançada em vez do aviso.
Registro de Alterações
Versão | Descrição |
---|---|
8.4.0 |
Passar o parâmetro mode foi descontinuado.
O parâmetro já não tem efeito a partir do PHP 8.1.0.
|
Exemplos
Veja mysqli_multi_query().
Notas
Note:
Embora seja sempre uma boa prática liberar a memória usada pelo resultado de uma consulta usando a função mysqli_free_result(), ao transferir grandes conjuntos de resultados usando mysqli_store_result() isso se torna particularmente importante.
Veja Também
- mysqli_real_query() - Executa uma consulta SQL
- mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados