介紹
C語(yǔ)言是一種非常流行的編程語(yǔ)言,被廣泛地應(yīng)用在各種領(lǐng)域,包括數(shù)值計(jì)算、操作系統(tǒng)、網(wǎng)絡(luò)編程等。而MySQL是一款開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被廣泛地使用在Web應(yīng)用程序中,因其易用性,高可靠性和穩(wěn)定性而備受青睞。
連接MySQL
要使用C語(yǔ)言連接MySQL數(shù)據(jù)庫(kù),必須包含MySQL C API頭文件。可以通過在代碼中引入mysql.h
來實(shí)現(xiàn),如下所示:
#include <mysql.h>
在連接MySQL之前,需要?jiǎng)?chuàng)建一個(gè)MYSQL
結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體會(huì)被用來建立數(shù)據(jù)庫(kù)連接??梢允褂?code>mysql_init()函數(shù)來完成這個(gè)操作,如下所示:
MYSQL *conn;
…
conn = mysql_init(NULL);
建立連接
一旦MYSQL
結(jié)構(gòu)體被創(chuàng)建,就可以使用mysql_real_connect()
函數(shù)建立到MySQL的連接。這個(gè)函數(shù)的參數(shù)包括MySQL服務(wù)器的IP地址,用戶名、密碼、數(shù)據(jù)庫(kù)名以及端口號(hào)。連接成功后,會(huì)返回MYSQL*
類型的指針,用于引用現(xiàn)在建立的連接,如下所示:
const char *server = "localhost";
const char *user = "root";
const char *password = "password";
const char *database = "mydb";
unsigned int port = 3306;
if (!mysql_real_connect(conn, server, user, password, database, port,
NULL, 0)) {
printf("Failed to connect to database: Error: %s\n", mysql_error(conn));
return -1;
}
讀取數(shù)據(jù)
連接建立好了之后,可以使用SQL查詢語(yǔ)句來從MySQL數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)??梢允褂?code>mysql_query()函數(shù)將查詢語(yǔ)句發(fā)送給MySQL服務(wù)器,并獲取查詢結(jié)果。如下所示:
if (mysql_query(conn, "SELECT * FROM mytable")) {
printf("Failed to query database: Error: %s\n", mysql_error(conn));
return -1;
}
MYSQL_RES *result = mysql_store_result(conn);
if (result == NULL) {
printf("Failed to get result: Error: %s\n", mysql_error(conn));
return -1;
}
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
printf("%s %s %s\n", row[0], row[1], row[2]);
}
mysql_free_result(result);
總結(jié)
通過C API
,可以輕松地從MySQL數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)。首先要建立到MySQL的連接,然后發(fā)送查詢語(yǔ)句,獲取查詢結(jié)果。使用C API
可以輕松地將MySQL數(shù)據(jù)庫(kù)集成到C程序中。