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_namemysql_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.