MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: 8 Интерфейсы для MySQL :: 8.4 Интерфейс C для MySQL :: 8.4.3 Описание функций интерфейса C :: 8.4.3.37 mysql_num_fields()

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • 8.4.3 Описание функций интерфейса C
  • 8.4.3.1 mysql_affected_rows()
  • 8.4.3.2 mysql_change_user()
  • 8.4.3.3 mysql_character_set_name()
  • 8.4.3.4 mysql_close()
  • 8.4.3.5 mysql_connect()
  • 8.4.3.6 mysql_create_db()
  • 8.4.3.7 mysql_data_seek()
  • 8.4.3.8 mysql_debug()
  • 8.4.3.9 mysql_drop_db()
  • 8.4.3.10 mysql_dump_debug_info()
  • 8.4.3.11 mysql_eof()
  • 8.4.3.12 mysql_errno()
  • 8.4.3.13 mysql_error()
  • 8.4.3.14 mysql_escape_string()
  • 8.4.3.15 mysql_fetch_field()
  • 8.4.3.16 mysql_fetch_field_direct()
  • 8.4.3.17 mysql_fetch_fields()
  • 8.4.3.18 mysql_fetch_lengths()
  • 8.4.3.19 mysql_fetch_row()
  • 8.4.3.20 mysql_field_count()
  • 8.4.3.21 mysql_field_seek()
  • 8.4.3.22 mysql_field_tell()
  • 8.4.3.23 mysql_free_result()
  • 8.4.3.24 mysql_get_client_info()
  • 8.4.3.25 mysql_get_server_version()
  • 8.4.3.26 mysql_get_host_info()
  • 8.4.3.27 mysql_get_proto_info()
  • 8.4.3.28 mysql_get_server_info()
  • 8.4.3.29 mysql_info()
  • 8.4.3.30 mysql_init()
  • 8.4.3.31 mysql_insert_id()
  • 8.4.3.32 mysql_kill()
  • 8.4.3.33 mysql_list_dbs()
  • 8.4.3.34 mysql_list_fields()
  • 8.4.3.35 mysql_list_processes()
  • 8.4.3.36 mysql_list_tables()
  • 8.4.3.37 mysql_num_fields()
  • 8.4.3.38 mysql_num_rows()
  • 8.4.3.39 mysql_options()
  • 8.4.3.40 mysql_ping()
  • 8.4.3.41 mysql_query()
  • 8.4.3.42 mysql_real_connect()
  • 8.4.3.43 mysql_real_escape_string()
  • 8.4.3.44 mysql_real_query()
  • 8.4.3.45 mysql_reload()
  • 8.4.3.46 mysql_row_seek()
  • 8.4.3.47 mysql_row_tell()
  • 8.4.3.48 mysql_select_db()
  • 8.4.3.49 mysql_shutdown()
  • 8.4.3.50 mysql_stat()
  • 8.4.3.51 mysql_store_result()
  • 8.4.3.52 mysql_thread_id()
  • 8.4.3.53 mysql_use_result()

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

8.4.3.37. mysql_num_fields()

unsigned int mysql_num_fields(MYSQL_RES *result)

или

unsigned int mysql_num_fields(MYSQL *mysql)

Вторая форма не работает на версии MySQL 3.22.24 или более новой. Вместо аргумента в параметре MYSQL* необходимо использовать выражение unsigned int mysql_field_count(MYSQL *mysql)

Описание

Возвращает количество столбцов в результирующем наборе.

Следует отметить, что можно получить искомое количество столбцов с помощью указателя или на результирующий набор, или на дескриптор соединения. Дескриптор соединения необходимо использовать, если функции mysql_store_result() или mysql_use_result() возвратили NULL (и, следовательно, отсутствует указатель результирующего набора). В этом случае можно вызвать функцию mysql_field_count()для определения, может ли функция mysql_store_result()выдать непустой результат. Это дает возможность данной клиентской программе выполнить соответствующее действие без уточнения, был ли данный запрос командой вида SELECT (или похожей на SELECT). В приведенном ниже примере иллюстрируется, как это можно сделать.

See Раздел 8.4.6.1, «Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?».

Возвращаемые значения

Беззнаковое целое число, представляющее количество полей в результирующем наборе.

Ошибки

Нет.

Пример

MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;

if (mysql_query(&mysql,query_string))
{
  // ошибка
}
else // запрос выполнен, обработка возвращенных им данных
{
  result = mysql_store_result(&mysql);
  if (result) // содержит строки {
    num_fields = mysql_num_fields(result);
    // извлечение строк, затем вызов mysql_free_result(result)
  }
  else // mysql_store_result()не вернула ничего; может ли что-либо вернуть?
  {
    if (mysql_errno(&mysql))
    {
      fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
    }
    else if (mysql_field_count(&mysql) == 0)
    {
      // запрос не возвращает данные
      // (запрос не был вида SELECT)
      num_rows = mysql_affected_rows(&mysql);
    }
  }
}

Альтернатива (если известно, что данный запрос должен вернуть результирующий набор) состоит в замене вызова функции mysql_errno(&mysql) на проверку, равна ли 0 функция mysql_field_count(&mysql). Это может случиться, только если что-нибудь происходило не так.


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.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!