對Linux下MySQL C的api 簡單封裝

2021-10-01 19:15:21 字數 2648 閱讀 5511

博文一 :

在使用 mysql_query() 進行一次查詢後,一般要用這兩個函式之一來把結果存到乙個 mysql_res * 變數中。

兩者的主要區別是,mysql_use_result() 的結果必須「一次性用完」,也就是說用它得到乙個 result 後,必須反覆用 mysql_fetch_row() 讀取其結果直至該函式返回 null 為止,否則如果你再次進行 mysql 查詢,會得到 「commands out of sync; you can』t run this command now」 的錯誤。而 mysql_store_result() 得到 result 是存下來的,你無需把全部行結果讀完,就可以進行另外的查詢。比如你進行乙個查詢,得到一系列記錄,再根據這些結果,用乙個迴圈再進行資料庫查詢,就只能用 mysql_store_result() 。

sql_.h

gdut17@ubuntu:

~/code/sql$ cat sql_.h

#ifndef sql_h

#define sql_h

#include

"mysql.h"

class mysql_cpp

;#endif

sql.cpp

//gcc sql.cpp -i/usr/include/mysql -l/usr/lib/mysql -lmysqlclient

#include

"sql_.h"

#include

#include

#include

using

namespace std;

intmain

(int argc,

char

*ar**)

mysql_cpp m;

m.mysql_connect

("127.0.0.1"

,"root"

,"123456"

,ar**[1]

);char buf[

128]=;

while(1

)return0;

}//預設建構函式

mysql_cpp::

mysql_cpp()

res =

null;}

//連線函式

bool mysql_cpp::

mysql_connect

(const

char

* host,

const

char

*user,

const

char

*passwd,

const

char

*db)

//連線資料庫後先設定編碼再查詢

mysql_query

(mysql,

"set names utf8");

cout<<

"connect ok"

true;}

bool mysql_cpp::

get_res

(const

char

* query)

//獲得結果集

res=

mysql_store_result

(mysql);if

(!res)

//返回結果集中的行數

//讀取結果

int count =

mysql_num_rows

(res);if

(count !=0)

printf

("\n");

}}else

//釋放結果集

mysql_free_result

(res)

;return

true;}

bool mysql_cpp::

get_res_use

(const

char

* query)

//獲得結果集

res=

mysql_use_result

(mysql);if

(!res)

//返回結果集中的行數

//讀取結果

while

((row=

mysql_fetch_row

(res)))

printf

("\n");

}//釋放結果集

mysql_free_result

(res)

;return

true;}

//析構函式

mysql_cpp::

~mysql_cpp()

}

makefile

gdut17@ubuntu:~/code/sql$ cat makefile 

lnc=/usr/include/mysql

lib=/usr/lib/mysql

lib=mysqlclient

all:sql

sql:sql.cpp

g++ -o sql sql.cpp -i$(lnc)

-l$(lib)

-l$(lib)

clean:sql

rm sql

MySQL(C 的鏈結姿勢)

介紹 這篇隨筆主要介紹mysql的基礎api的使用姿勢 基本使用姿勢 第一步 登陸資料庫 string connstr database start datasource 127.0.0.1 port 3306 userid root pwd yangyang21 mysql.data.mysqlc...

Linux下對程序的監控

bin bash while true dosleep 600 home opt arm date bin date date f t home top log.log top b d 1 n 1 home top log.log echo home top log.log echo home to...

Linux下對tomcat的命令

遠端操作linux中tomcat的命令 1.catalina.sh start 啟動tomcat 2.catalina.sh stop 關閉tomcat 3.tail f logs catalina.out 檢視後台輸出 4.ps ef grep tomcat 檢視tomcat執行狀態 5.kill...