在C語(yǔ)言中,MySQL數(shù)據(jù)庫(kù)讀寫(xiě)操作是非常常見(jiàn)的,我們可以使用MySQL的C語(yǔ)言API來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。下面我們來(lái)了解一下如何在C語(yǔ)言中進(jìn)行MySQL數(shù)據(jù)庫(kù)的讀寫(xiě)。
首先,需要將MySQL的C語(yǔ)言API頭文件引入我們的代碼中:
#include <mysql.h>
接著,我們需要進(jìn)行MySQL的連接,代碼如下:
MYSQL *conn; //MYSQL結(jié)構(gòu)體指針 conn=mysql_init(NULL); //初始化一個(gè)MYSQL對(duì)象 if(!conn) //如果初始化失敗,則輸出錯(cuò)誤信息 { fprintf(stderr,"mysql初始化錯(cuò)誤:%s\n",mysql_error(conn)); return -1; } if(!mysql_real_connect(conn,"localhost","username","password","test_database",0,NULL,0)) //連接MySQL數(shù)據(jù)庫(kù)服務(wù)器 { fprintf(stderr,"mysql連接錯(cuò)誤:%s\n",mysql_error(conn)); mysql_close(conn); return -1; } if(mysql_query(conn,"set names utf8")) //設(shè)置數(shù)據(jù)庫(kù)字符集 { fprintf(stderr,"mysql字符集錯(cuò)誤:%s\n",mysql_error(conn)); mysql_close(conn); return -1; }
以上代碼中,我們先初始化了一個(gè)MYSQL對(duì)象,接著使用mysql_real_connect函數(shù)連接MySQL服務(wù)器,其中l(wèi)ocalhost為服務(wù)器地址,username為用戶名,password為密碼,test_database為需要連接的數(shù)據(jù)庫(kù)名。最后我們使用mysql_query函數(shù)來(lái)設(shè)置數(shù)據(jù)庫(kù)的字符集為utf8。
接下來(lái)我們來(lái)進(jìn)行MySQL數(shù)據(jù)庫(kù)的讀取操作,代碼如下:
MYSQL_RES *res; MYSQL_ROW row; if(mysql_query(conn,"SELECT * FROM student")) //執(zhí)行查詢操作 { fprintf(stderr,"mysql查詢錯(cuò)誤:%s\n",mysql_error(conn)); mysql_close(conn); return -1; } res=mysql_use_result(conn); //獲取查詢結(jié)果集 while((row=mysql_fetch_row(res))) { printf("%s %s %s\n",row[0],row[1],row[2]); //輸出查詢結(jié)果 } mysql_free_result(res); //釋放資源
以上代碼中,我們使用mysql_query函數(shù)執(zhí)行SELECT語(yǔ)句,獲取查詢結(jié)果集后使用mysql_fetch_row函數(shù)逐行讀取數(shù)據(jù),并使用printf函數(shù)輸出查詢結(jié)果。最后使用mysql_free_result函數(shù)釋放資源。
接下來(lái)我們來(lái)進(jìn)行MySQL數(shù)據(jù)庫(kù)的寫(xiě)入操作,代碼如下:
char sql[1024]; sprintf(sql,"INSERT INTO student(name,age,sex) VALUES('%s',%d,'%s')","張三",18,"男"); if(mysql_query(conn,sql)) //執(zhí)行插入操作 { fprintf(stderr,"mysql插入錯(cuò)誤:%s\n",mysql_error(conn)); mysql_close(conn); return -1; }
以上代碼中,我們使用sprintf函數(shù)生成INSERT語(yǔ)句,然后使用mysql_query函數(shù)執(zhí)行插入操作,并使用mysql_error函數(shù)輸出錯(cuò)誤信息。
以上就是在C語(yǔ)言中進(jìn)行MySQL數(shù)據(jù)庫(kù)讀寫(xiě)操作的基本方法,通過(guò)上述代碼及API函數(shù)的使用可以實(shí)現(xiàn)基本的對(duì)MySQL數(shù)據(jù)庫(kù)的操作。