unsigned int mysql_field_count(MYSQL
*mysql)
Se você estiver utilizando uma versão anterior a versão
3.22.24 do MySQL, você deve utilizar unsigned int
mysql_num_fields(MYSQL *mysql)
.
Descrição
Retorna o número de colunas para a consulta mais recente na conexão.
Normalmente esta função é utilizada quando
mysql_store_result()
retorna
NULL
(então você não possui um apontador
para o resultado). Neste caso, você pode chamar
mysql_field_count()
para determinar se
mysql_store_result()
não produziu um
resultado vazio. Isto permite que o programa cliente tome a
ação aprpriada sem saber se a consulta foi uma instrução
SELECT
(ou do mesmo tipo). O exemplo
mostrado aqui ilustra como isto pode ser feito.
Valor Retornado
Um unsigned integer (inteiro sem sinal) representando o número de campo em um resultado.
Erros
Nenhum.
Exemplo
MYSQL_RES *result; unsigned int num_fields; unsigned int num_rows; if (mysql_query(&mysql,query_string)) { // error } else // query succeeded, process any data returned by it { result = mysql_store_result(&mysql); if (result) // there are rows { num_fields = mysql_num_fields(result); // retrieve rows, then call mysql_free_result(result) } else // mysql_store_result() returned nothing; should it have? { if(mysql_field_count(&mysql) == 0) { // query does not return data // (it was not a SELECT) num_rows = mysql_affected_rows(&mysql); } else // mysql_store_result() should have returned data { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } } }
Uma alternativa é substituir a chamada
mysql_field_count(&mysql)
com
mysql_errno(&mysql)
. Neste caso, você
está verificando diretamente um erro de
mysql_store_result()
em vez de conferir o
valor de mysql_field_count()
se a
instrução foi uma SELECT
.
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.