C語言連接MySQL數(shù)據(jù)庫通常有兩種方式:使用MySQL C API或使用第三方庫。
1.使用MySQL C API
/* 頭文件 */ #include <mysql/mysql.h> /* 宏定義 */ #define DB_HOST "localhost" // 主機名 #define DB_USER "root" // 用戶名 #define DB_PASSWORD "password" // 密碼 #define DB_DATABASE "my_db" // 數(shù)據(jù)庫名 #define DB_PORT 3306 // 端口號 #define DB_SOCKET NULL // UNIX socket路徑 /* 連接函數(shù) */ MYSQL *connect_db() { MYSQL *conn; conn = mysql_init(NULL); // 初始化連接 if(!mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, DB_PORT, DB_SOCKET, 0)) // 連接失敗 { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(conn)); exit(1); } return conn; // 返回連接 }
2.使用第三方庫
在C語言中,有幾個比較流行的第三方庫可以用于連接MySQL數(shù)據(jù)庫,如libmariadbclient、libmysqlclient等。
/* libmariadbclient例子 */ /* 頭文件 */ #include <mariadb/mysql.h> /* 宏定義 */ #define DB_HOST "localhost" // 主機名 #define DB_USER "root" // 用戶名 #define DB_PASSWORD "password" // 密碼 #define DB_DATABASE "my_db" // 數(shù)據(jù)庫名 #define DB_PORT 3306 // 端口號 #define DB_SOCKET NULL // UNIX socket路徑 /* 連接函數(shù) */ MYSQL *connect_db() { MYSQL *conn; conn = mysql_init(NULL); // 初始化連接 if(!mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, DB_PORT, DB_SOCKET, 0, NULL, CLIENT_MULTI_STATEMENTS)) // 連接失敗 { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(conn)); exit(1); } return conn; // 返回連接 }