C語言是一門在計算機編程領域中廣泛使用的編程語言之一,而MySQL則是一款強大的數據庫管理系統。在編寫C程序時,我們經常需要將數據存入MySQL數據庫,這時候就需要使用C語言與MySQL進行交互。下面我們將詳細介紹如何使用C語言實現MySQL批量寫入數據庫。
#include#include #include #include "mysql.h" int main(int argc, char **argv) { MYSQL mysql; MYSQL_RES *res; MYSQL_ROW row; mysql_init(&mysql); if (!mysql_real_connect(&mysql, "localhost", "root", "", "test", 0, NULL, 0)) { printf("Connect Error\n"); exit(1); } char *sql_insert = "INSERT INTO user (name, age, address) VALUES ('yu', 18, 'Beijing')"; int ret = 0; int i; char sql[100] = {0}; for (i = 1; i<= 100; i++) { snprintf(sql, sizeof(sql), "('%s_%d', %d, '%s_%d')", "test", i, i, "address", i); strcat(sql_insert, sql); if (i % 10 == 0) { ret = mysql_real_query(&mysql, sql_insert, strlen(sql_insert)); if (ret != 0) { printf("Query Error: %s\n", mysql_error(&mysql)); exit(1); } memset(sql_insert, 0, sizeof(sql_insert)); strcpy(sql_insert, "INSERT INTO user (name, age, address) VALUES "); } else { strcat(sql_insert, ","); } } ret = mysql_real_query(&mysql, sql_insert, strlen(sql_insert)); if (ret != 0) { printf("Query Error: %s\n", mysql_error(&mysql)); exit(1); } mysql_close(&mysql); return 0; }
以上代碼中,我們先通過mysql_init函數初始化mysql結構體,然后通過mysql_real_connect函數連接MySQL數據庫。接著定義一個sql_insert字符串,用于存放我們要寫入數據庫的SQL語句。我們可以將多個數據組合成一個SQL語句,一次性寫入數據庫,這樣比單個執行效率高很多。我們在for循環中將要插入的數據逐個拼接成一個完整的SQL語句。當拼接的數據個數達到10個時,就執行一次mysql_real_query函數,將這10個數據一次性寫入數據庫。當循環結束時,我們將剩余的數據一次性寫入數據庫。
通過以上代碼,我們可以看出使用C語言實現MySQL批量寫入數據庫的方法,代碼簡單直觀,可以大大提高數據寫入效率。