C 語言連線mysql 執行 增 刪 改 查 操作

2021-07-16 10:22:08 字數 3307 閱讀 7448

c 語言連線mysql 

api介紹:

1.mysql *mysql_init(mysql *mysql) 

描述:分配或初始化與mysql_real_connect()相適應的mysql物件。

如果mysql是null指標,該函式將分配、初始化、並返回新物件。

否則,將初始化物件,並返回物件的位址。

如果mysql_init()分配了新的物件,當呼叫mysql_close()來關閉連線時。將釋放該物件。

返回值:初始化的mysql*控制代碼;也可以將mysql的例項位址給這個函式,直接讓它初始化例項。

2.mysql *mysql_real_connect(mysql *mysql, const char *host, const char *user, const char *passwd, 

const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)

描述:根據引數連線mysql資料庫;

第乙個引數是mysql*型別的指標,這個引數必須是經過mysql_init()初始化過的。

第二個引數是資料庫位址,如果是null或者localhost 則連線本地資料庫;

第三個引數是資料庫使用者名稱;

第四個引數是資料庫密碼;

第五個引數是資料庫名稱(具體要操作的資料庫名稱);

第六個引數是資料庫埠號;

第七個引數描述的是套接字或者命名管道, 如果使用tcp/ip協議鏈結資料庫,則此引數為null

第八個引數通常為0;

返回值:

如果連線成功,返回mysql*連線控制代碼。如果連線失敗,返回null。對於成功的連線,返回值與第1個引數的值相同。

3.int mysql_query(mysql *mysql, const char *query)

描述:執行由「null終結的字串」查詢指向的sql查詢。正常情況下,字串必須包含1條sql語句,而且不應為語句新增終結分號(『;』)或「\g」。

如果允許多語句執行,字串可包含多條由分號隔開的語句。

第乙個引數是mysql例項的位址,

第二個引數是要執行的sql語句,select,update,delete,insert ...

返回值:

如果查詢成功,返回0。如果出現錯誤,返回非0值。 

4. mysql_res *mysql_store_result(mysql *mysql) 

描述:對於成功檢索了資料的每個查詢(select、show、describe、explain、check table等),必須呼叫mysql_store_result()或mysql_use_result() 。

對於其他查詢,不需要呼叫mysql_store_result()或mysql_use_result(),但是如果在任何情況下均呼叫了mysql_store_result(),它也不會導致任何傷害或效能降低。

返回值:

具有多個結果的mysql_res結果集合。如果出現錯誤,返回null

5.my_ulonglong mysql_num_rows(mysql_res *result) 

描述:返回結果集中的行數。

6.unsigned int mysql_num_fields(mysql_res *result) 

描述:返回結果集中的列數。

7.mysql_row mysql_fetch_row(mysql_res *result) 

描述:遍歷結果集中的行資料,每執行一次便會檢索出查詢出的一行資料

檢索結果集的下一行。在mysql_store_result()之後使用時,如果沒有要檢索的行,mysql_fetch_row()返回null

返回值:

下一行的mysql_row結構。如果沒有更多要檢索的行或出現了錯誤,返回null。

8.my_ulonglong mysql_affected_rows(mysql *mysql) 

描述:返回上次update更改的行數,上次delete刪除的行數,或上次insert語句插入的行數。對於update、delete或insert語句,

可在mysql_query()後立刻呼叫。對於select語句,mysql_affected_rows()的工作方式與mysql_num_rows()類似。

演示**:

#include #include #include #include #define select "select * from test where flag =0"

#define insert "insert into test (flag,type,f_index) values('1','test_9','4')"

#define delete "delete from test where f_index=4"

#define update "update test set type='test_33' where f_index=4"

void err(char *p)

int main()

{ mysql mysql;//mysql 例項

mysql_row row;//查詢結果

mysql_init(&mysql);//初始化mysql例項

//鏈結mysql

if(!mysql_real_connect(&mysql,"12.23.0.3","sum","sum","test",3306,null,0)) err("mysql_real_connect");

//執行查詢語句

if(mysql_query(&mysql,select) != 0) err("mysql_query");

//儲存結果集

mysql_res *res=mysql_store_result(&mysql);

//返回結果集中的行數

int r_count=mysql_num_rows(res);

//返回結果集中的列數;

int f_count=mysql_num_fields(res);

while(row=mysql_fetch_row(res))

{int i=0;

for(i;i

表原始資料內容:

執行結果: 

程式執行完  表中的資料沒有變化;增加修改的資料最後都刪掉了。

Linux C語言連線MySQL 增刪改查操作

linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用c語言寫測試 於是研究了把c怎麼連線mysql以及增刪改查的 安裝mysql client或者編譯原始碼安裝mysql後,會有支援c語言寫客戶端的標頭檔案和庫檔案,但是目錄可能不一樣,mysql原始碼安...

Linux C語言連線MySQL 增刪改查操作

linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用c語言寫測試 於是研究了把c怎麼連線mysql以及增刪改查的 安裝mysql client或者編譯原始碼安裝mysql後,會有支援c語言寫客戶端的標頭檔案和庫檔案,但是目錄可能不一樣,mysql原始碼安...

go語言連線mysql,實現增刪改查

獲取驅動包 go get github.com go sql driver mysql 空匯入 func main if err nil 預處理sql stmt,err db.prepare insert into people value default,stmt,err db.prepare u...