在使用C語言備份MySQL數據庫時,我們通常需要使用MySQL的C API接口來實現。下面是一個簡單的備份程序:
#include#include int main() { MYSQL *conn; MYSQL_RES *result; MYSQL_ROW row; FILE *fp; // 連接MySQL conn = mysql_init(NULL); if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) { printf("Could not connect to MySQL!\n"); return 1; } // 查詢所有數據 mysql_query(conn, "SELECT * FROM table"); // 保存查詢結果到文件 fp = fopen("backup.sql", "w"); while ((result = mysql_store_result(conn)) && mysql_num_rows(result) != 0) { while ((row = mysql_fetch_row(result))) { int i; for (i = 0; i< mysql_num_fields(result); i++) { fprintf(fp, "%s,", row[i] ? row[i] : "NULL"); } fprintf(fp, "\n"); } mysql_free_result(result); } // 關閉MySQL連接和文件 mysql_close(conn); fclose(fp); return 0; }
在這個程序中,我們首先使用mysql_init()函數初始化了一個MySQL連接對象,然后使用mysql_real_connect()函數連接到數據庫。接著,我們使用mysql_query()函數執行了一個SELECT語句,將查詢結果保存到了一個MYSQL_RES類型的變量result中。
我們使用mysql_store_result()函數從結果集中獲取一個MYSQL_RES類型的變量result,然后使用mysql_num_rows()函數來判斷結果集中是否還有更多的行可以取出。在每一行數據中,我們使用mysql_fetch_row()函數獲取一個MYSQL_ROW類型的變量row,然后使用mysql_num_fields()函數獲取當前結果集的列數。最后,我們將每一行數據寫到backup.sql文件中。
最后,我們使用mysql_close()函數關閉了MySQL連接對象,同時也關閉了文件。
上一篇c 備份mysql數據庫
下一篇c 和mysql數據庫