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_SYNCOs comando foram executados em uma ordem inpropriada.
CR_OUT_OF_MEMORYFalta de memoria.
CR_SERVER_GONE_ERRORO servidor MariaDB foi finalizado.
CR_SERVER_LOSTA conexão ao servidor MariaDB foi perdida durante a consulta.
CR_UNKNOWN_ERRORUm erro desconhecido ocorreu.
CR_UNSUPPORTED_PARAM_TYPEO tipo de buffer é
MYSQL_TYPE_DATE,MYSQL_TYPE_TIME,MYSQL_TYPE_DATETIME, ouMYSQL_TYPE_TIMESTAMP, mas o tipo de dado não éDATE,TIME,DATETIMEouTIMESTAMP.- 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.