MySQL 是一種流行的數據庫管理系統,被廣泛應用于Web開發領域。在 C 語言中連接 MySQL 數據庫可以使用 MySQL 的 C API 接口,使得我們可以通過編程的方式對 MySQL 數據庫進行增刪改查等操作。
連接 MySQL 數據庫需要用到 MySQL C API 提供的庫文件。在 Linux 系統中,我們可以使用以下命令來安裝:
sudo apt-get update
sudo apt-get install libmysqlclient-dev
在 Windows 系統中,將庫文件下載后添加到項目中即可。
下面是一段使用 C API 連接 MySQL 數據庫的示例代碼:
#include <mysql.h>
int main() {
MYSQL *con = mysql_init(NULL);
if (con == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
return 1;
}
if (mysql_real_connect(con, "localhost", "user", "password",
"database", 0, NULL, 0) == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
return 1;
}
/* 在此可以執行對數據庫的操作 */
mysql_close(con);
return 0;
}
在示例代碼中,使用 mysql_init() 來初始化一個 MySQL 對象,并使用 mysql_real_connect() 連接到 MySQL 數據庫。其中,第一個參數為連接對象,第二個參數是服務器地址,第三個參數是用戶名,第四個參數是密碼,第五個參數是需要連接的數據庫名。
連接成功后,我們就可以執行數據庫操作了。例如,執行一條 SQL 查詢:
if (mysql_query(con, "SELECT * FROM table")) {
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
return 1;
}
MYSQL_RES *result = mysql_store_result(con);
if (result == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
return 1;
}
int num_fields = mysql_num_fields(result);
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
for (int i = 0; i< num_fields; i++) {
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
這段代碼展示了如何查詢一張表里的數據,并將結果打印出來。
總之,使用 C API 連接 MySQL 數據庫就是這么簡單。只要知道了 MySQL 對象的初始化和連接,再配合 SQL 語句,我們就可以進行各種數據庫操作了。不過需要注意的是,在執行完成后一定要使用 mysql_close() 來關閉連接。