最近在使用C語言編寫程序,需要將一大批數據寫入到MySQL數據庫中。MySQL是一種關系型數據庫管理系統,具有高效、可靠性強等特點,因此選擇MySQL作為數據存儲的工具。下面,介紹一下C語言批量寫入MySQL數據庫的方法。
首先,需要在C語言中使用MySQL C API來連接數據庫。MySQL C API是MySQL提供的一組C語言API,可以直接在程序中操作MySQL數據庫。連接數據庫的代碼如下:
MYSQL *conn; //聲明MySQL結構體指針 MYSQL_RES *res; //聲明結果集結構體指針 MYSQL_ROW row; //聲明行類型結構體指針 char *server = "localhost"; //MySQL服務器地址 char *user = "root"; //MySQL用戶名 char *password = "root"; //MySQL密碼 char *database = "test"; //MySQL數據庫名稱 conn = mysql_init(NULL); //初始化MySQL結構體指針 if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn)); exit(1); }
連接數據庫成功后,就可以將數據批量寫入MySQL數據庫中了。假設要將一組學生的成績信息寫入數據庫中,可以將數據存儲到結構體中,并使用循環語句批量寫入數據庫。代碼如下:
struct student { char name[10]; int math; int english; }; struct student st[5] = { {"Tom", 80, 90}, {"Jack", 85, 92}, {"Lucy", 90, 95}, {"Mary", 92, 88}, {"John", 88, 90} }; char sql[100]; for(int i = 0; i< 5; i++) { sprintf(sql, "INSERT INTO score(name,math,english) VALUES('%s',%d,%d)", st[i].name, st[i].math, st[i].english); if(mysql_query(conn, sql)) { printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn)); exit(1); } }
以上代碼中,sprintf函數用于將數據格式化為SQL語句,mysql_query函數用于執行SQL語句,并將結果返回到結果集結構體指針res中。如果執行失敗,可以通過mysql_errno函數和mysql_error函數獲取錯誤信息。
最后,記得在程序結束時關閉數據庫連接。代碼如下:
mysql_free_result(res); //釋放結果集 mysql_close(conn); //關閉數據庫連接
以上就是C語言批量寫入MySQL數據庫的方法。通過以上代碼,可以靈活地操作MySQL數據庫,完成數據存儲、查詢等操作。
上一篇mysql kafka
下一篇mysql jsp驅動