欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 將json寫進數據庫中

林雅南2年前8瀏覽0評論

在Web開發中,JSON(JavaScript Object Notation)是一種常用的數據格式。通常我們的應用程序需要將多個JSON數據存儲在后端數據庫中,以便與其它應用程序或前端交互。在使用C語言編寫后端時,將JSON數據寫進數據庫有多種方式。下面將介紹C語言如何將JSON寫進數據庫中。

首先,我們需要使用第三方庫,例如libmariadbclient或libpq。這些庫提供了用于連接數據庫和執行SQL語句的API。使用連接池是常規方式,它可以避免創建/closing數據庫連接的開銷,而使用事務可以確保數據的一致性。

#include#include#include#include//連接到數據庫
int connect_db() {
MYSQL* conn = mysql_init(NULL);
if (!mysql_real_connect(conn, "localhost", "testuser", "testpass", "testdata", 0, NULL, 0)) {
printf("Error: %s\n", mysql_error(conn));
mysql_close(conn);
return EXIT_FAILURE;
}
return conn;
}
//將json寫入數據庫
int write_json_to_db(MYSQL* conn, const char* table_name, const char* json_data) {
json_object* jobj = json_tokener_parse(json_data);
char* sql = malloc(strlen(json_object_to_json_string(jobj)) + 100);
sprintf(sql, "INSERT INTO %s (data) VALUES('%s');", table_name, json_object_to_json_string(jobj));
int ret = mysql_query(conn, sql);
free(sql);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}

在示例代碼中,通過mysql_init()函數初始化MYSQL結構,使用mysql_real_connect()連接MySQL服務器,然后調用mysql_query()函數執行SQL語句。同時,通過json_tokener_parse()函數將JSON數據轉換為json_object,通過json_object_to_json_string()函數將其轉換為字符串,將其插入到數據庫中。

除了MySQL,還可以使用PostgreSQL等數據庫。下面是使用libpq將JSON數據寫入PostgreSQL的示例代碼:

#include#include#include#include//連接到數據庫
PGconn* connect_db() {
PGconn* conn = PQconnectdb("dbname=testdata user=testuser password=testpass");
if (PQstatus(conn) != CONNECTION_OK) {
printf("Error: %s\n", PQerrorMessage(conn));
PQfinish(conn);
return NULL;
}
return conn;
}
//將json寫入數據庫
int write_json_to_db(PGconn* conn, const char* table_name, const char* json_data) {
json_object* jobj = json_tokener_parse(json_data);
char* sql = malloc(strlen(json_object_to_json_string(jobj)) + 100);
sprintf(sql, "INSERT INTO %s (data) VALUES('%s');", table_name, json_object_to_json_string(jobj));
PGresult* res = PQexec(conn, sql);
free(sql);
int ret = PQresultStatus(res) == PGRES_COMMAND_OK ? EXIT_SUCCESS : EXIT_FAILURE;
PQclear(res);
return ret;
}

這里使用PQconnectdb()連接到PostgreSQL服務器,PQerrorMessage()函數顯示錯誤消息。通過PQexec()執行SQL語句,并通過PQresultStatus()判斷結果是否成功。

總的來說,將JSON數據寫入數據庫需要使用第三方庫,同時需要將JSON數據轉換為字符串,然后將其插入到數據庫中。通過連接池和事務可以提高效率和數據的一致性。