mysql_fetch()
int mysql_fetch(MYSQL_STMT *stmt)
Descrição
mysql_fetch()
retorna o próximo registro no resultado. Ele pode ser chamado apenas enquanto existir o conjunto de resultados. Per exemplo, depois de uma chamada de mysql_execute()
que cria o resultado ou depois de mysql_stmt_store_result()
, que é chamado depois de mysql_execute()
para armazenar todo o resultado.
mysql_fetch
retorna os dados de uma linha usando o buffers limitado por mysql_bind_result()
. Ele retorna os dados neste buffer para todas as colunas no registro atual e os tamanhos são retornados para o apontador length
.
Note que, todas as colunas devem ser limitadas pela aplicação antes de chamar mysql_fetch()
.
Se um valor do dado buscado é um valor NULL
, o valor *is_null
da estrutura MYSQL_BIND
correspondente contém VERDADEIRO (1). Senão, o dado e seu tamanho é retornado nos elementos *buffer
e *length
baseados no tipo de buffer especificado pela aplicação. Cada tipo numérico e temporal tem um tamanho fixo como mostrado na tabela a seguir. O tamano dos tipos strings dependem do tasmanho do valor dos dados atual, como indicado por data_length
.
Type | Length |
MYSQL_TYPE_TINY
| 1 |
MYSQL_TYPE_SHORT
| 2 |
MYSQL_TYPE_LONG
| 4 |
MYSQL_TYPE_LONGLONG
| 8 |
MYSQL_TYPE_FLOAT
| 4 |
MYSQL_TYPE_DOUBLE
| 8 |
MYSQL_TYPE_TIME
| sizeof(MYSQL_TIME)
|
MYSQL_TYPE_DATE
| sizeof(MYSQL_TIME)
|
MYSQL_TYPE_DATETIME
| sizeof(MYSQL_TIME)
|
MYSQL_TYPE_STRING
| tam_dado
|
MYSQL_TYPE_BLOB
| tam_dado |
Valor Retornado
Valor retornado | Descrição |
0 | Sucesso, o dado foi buscado para o buffers de dados da aplicação. |
1 | Ocorreu um erro. O código e a mensagem de erro podem ser obtidos chamando mysql_stmt_errno() e mysql_stmt_error() .
|
MYSQL_NO_DATA
| Não existem mais registros/dados |
Erros
CR_COMMANDS_OUT_OF_SYNC
Os comando foram executados em uma ordem inpropriada.
CR_OUT_OF_MEMORY
Falta de memoria.
CR_SERVER_GONE_ERROR
O servidor MariaDB foi finalizado.
CR_SERVER_LOST
A conexão ao servidor MariaDB foi perdida durante a consulta.
CR_UNKNOWN_ERROR
Um erro desconhecido ocorreu.
CR_UNSUPPORTED_PARAM_TYPE
O tipo de buffer é
MYSQL_TYPE_DATE
,MYSQL_TYPE_TIME
,MYSQL_TYPE_DATETIME
, ouMYSQL_TYPE_TIMESTAMP
, mas o tipo de dado não éDATE
,TIME
,DATETIME
ouTIMESTAMP
.- Todos os outros erros de conversão não suportada são retornados de
mysql_bind_result()
.
Exemplo
O seguinte exemplo demonstra como buscar dados de uma tabela usando mysql_get_metadata()
, mysql_bind_result()
e mysql_fetch()
. (Este exemplo espera recuperar as duas linahs inseridas pelo exemplo mostrado em "mysql_execute()
".) A variável MariaDB
çonsiderada como um handle de conexão válido handle.