在使用C語言連接MySQL數(shù)據(jù)庫時(shí),我們經(jīng)常需要獲取表格的列名。下面介紹一種簡單的代碼實(shí)現(xiàn)方法。
#include <mysql.h>
#include <stdio.h>
int main() {
MYSQL mysql;
MYSQL_RES *res;
MYSQL_FIELD *fd;
MYSQL_ROW row;
char query[100];
// 連接數(shù)據(jù)庫
mysql_init(&mysql);
mysql_real_connect(&mysql, "localhost", "root", "password", "testdb", 0, NULL, 0);
// 執(zhí)行查詢語句
sprintf(query, "SELECT * FROM some_table LIMIT 1");
mysql_query(&mysql, query);
// 獲取列名
res = mysql_use_result(&mysql);
printf("列名:");
while (fd = mysql_fetch_field(res)) {
printf("%s ", fd->name);
}
printf("\n");
// 關(guān)閉數(shù)據(jù)庫連接
mysql_free_result(res);
mysql_close(&mysql);
return 0;
}
代碼解釋:
1. 引入MySQL庫和標(biāo)準(zhǔn)輸入輸出庫。
#include <mysql.h>
#include <stdio.h>
2. 主函數(shù)中定義一些變量:MySQL連接,查詢結(jié)果集,表格列屬性等。
int main() {
MYSQL mysql;
MYSQL_RES *res;
MYSQL_FIELD *fd;
MYSQL_ROW row;
char query[100];
3. 連接MySQL數(shù)據(jù)庫。
mysql_init(&mysql);
mysql_real_connect(&mysql, "localhost", "root", "password", "testdb", 0, NULL, 0);
4. 執(zhí)行查詢語句。
sprintf(query, "SELECT * FROM some_table LIMIT 1");
mysql_query(&mysql, query);
5. 獲取結(jié)果集,并逐個(gè)獲取列名。
res = mysql_use_result(&mysql);
printf("列名:");
while (fd = mysql_fetch_field(res)) {
printf("%s ", fd->name);
}
printf("\n");
6. 關(guān)閉結(jié)果集和MySQL連接。
mysql_free_result(res);
mysql_close(&mysql);
return 0;
}
這段代碼運(yùn)行后,可以在控制臺輸出查詢表格的列名。