Spec-Zone.ru › MySQL Connectors 1.0

5.4.47 mysql_list_fields()

MYSQL_RES *
mysql_list_fields(MYSQL *mysql,
                  const char *table,
                  const char *wild)

Описание

Примечание

mysql_list_fields() устарело и может быть удалено в будущей версии MySQL. Вместо этого используйте mysql_real_query() или mysql_query() для выполнения запроса.

Возвращает пустой результат набора, метаданные которого содержат информацию о столбцах в указанной таблице, соответствующих простому регулярному выражению, заданному параметром wild. wild может содержать символы подстановки % или _, или может быть указателем NULL, чтобы соответствовать всем полям. Вызов mysql_list_fields() аналогичен выполнению запроса SHOW COLUMNS FROM tbl_name [LIKE wild].

Полученная информация примерно эквивалентна той, что получается при выполнении представленного здесь запроса с помощью клиента mysql, например так:

$> mysql test --column-type-info -e "SELECT * FROM t LIMIT 0"
Field   1:  `c1`
Catalog:    `def`
Database:   `test`
Table:      `t`
Org_table:  `t`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM

Field   2:  `c2`
Catalog:    `def`
Database:   `test`
Table:      `t`
Org_table:  `t`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM

$>

Предпочтительно использовать SHOW COLUMNS FROM tbl_name вместо mysql_list_fields().

Вы должны освободить результат набора с помощью mysql_free_result().

Значения возврата

Результат набора MYSQL_RES в случае успеха. NULL, если произошла ошибка.

Ошибки

  • Команды были выполнены в неправильном порядке.

  • Сервер MySQL отсутствует.

  • Соединение с сервером было потеряно во время выполнения запроса.

  • Произошла неизвестная ошибка.

Пример

int i;
MYSQL_RES *tbl_cols = mysql_list_fields(mysql, "mytbl", "f%");

unsigned int field_cnt = mysql_num_fields(tbl_cols);
printf("Number of columns: %d\n", field_cnt);

for (i=0; i < field_cnt; ++i)
{
  /* col describes i-th column of the table */
  MYSQL_FIELD *col = mysql_fetch_field_direct(tbl_cols, i);
  printf ("Column %d: %s\n", i, col->name);
}
mysql_free_result(tbl_cols);

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.0-en/mysql-list-fields.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API