色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 數據庫連接轉換成json

林子帆2年前8瀏覽0評論

C語言是一種底層語言,但是在日常開發中我們經常需要連接數據庫并將查詢結果轉化成json格式。下面是一份將C語言連接數據庫,然后轉換成json格式的示例代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h>
// 定義mysql連接
MYSQL mysql;
// 定義json字符串
char *getResult() {
MYSQL_RES *res = mysql_store_result(&mysql);
int count = 0;
MYSQL_FIELD *field;
MYSQL_ROW row;
char *result = "{";
if (res) {
count = mysql_num_fields(res);
while ((field = mysql_fetch_field(res))) {
char *temp = (char *) malloc(strlen(res) + strlen(field->name) + strlen("{\"\": ,}") + 1);
snprintf(temp, strlen(temp) + 1, "{\"%s\":\"%s\"}, ", field->name, row[count]);
result = realloc(result, strlen(result) + strlen(temp) + 1);
strcat(result, temp);
free(temp);
}
result[strlen(result) - 2] = '\0';
result = realloc(result, strlen(result) + 2);
strcat(result, "}");
}
mysql_free_result(res);
return result;
}
int main() {
mysql_init(&mysql);
mysql_real_connect(&mysql, "localhost", "root", "password", "test", 3306, NULL, 0);
mysql_query(&mysql, "SELECT * FROM user");
printf("%s", getResult());
mysql_close(&mysql);
return 0;
}

上述代碼中,我們使用了mysql.h庫,這是一個mysql數據庫操作的C語言庫。我們首先定義了一個mysql的變量,然后使用mysql_init()方法初始化變量。接著使用mysql_real_connect()方法連接到mysql數據庫,參數包括主機名、用戶名、密碼、數據庫名和端口。使用mysql_query()方法執行sql語句,并將結果存儲在MYSQL_RES類型的變量中。然后,我們遍歷結果,將每一列的數據都轉化成json格式,并以字符串的形式返回給getResult()方法。最后,我們釋放結果,關閉mysql連接,程序結束。