mysql常用函式封裝 mysql的常用操作的封裝

2021-10-17 19:18:04 字數 4414 閱讀 2583

1、概述:

為了把繁瑣的操作簡化成簡單的類,設計了2個類用來封裝了mysql的常用操作,以便使用者可以方便地使用。

2、組成

1)資料庫操作類cdatabaseconnect

2)sql物件類csqlstatement

3、類的標頭檔案**

#include

#include "mysql.h"

#include

using namespace std;

//mysql的返回碼型別

#define mysql_ok

#define mysql_false

!(mysql_ok)

#define mysql_error

//sql的sql語句型別

#define mysql_sql_type_insert

#define mysql_sql_type_query

//字串的大小

#define mysql_char_size

0xff+1

#define mysql_string_size

0xff+1

#define mysql_varchar_size

0xffff+1

#define mysql_var_string_size

0xffff+1

#define mysql_mediumblob_size

0xffffff+1

#define mysql_longblob_size

0xffffffff+1

//日誌入口函式指標

typedef void(*paddlogfunc)(const char *pszdata);

//資料庫連線引數

typedef struct tagstconnectparam

char szuser[64+1];

//使用者名稱

char szpasswd[64+1];

//使用者密碼

char szhost[64+1];

//主機名稱

char szdbname[64+1];

//資料庫名稱

char *pszsocket;

//socket

unsigned int nport;

//埠號

unsigned long ucclientflag;

//客戶端標識

}stconnectparam, *pstconnectparam;

//sql預處理物件

class csqlstatement

public:

csqlstatement();

csqlstatement(mysql* pdb);

virtual ~csqlstatement();

private:

friend class cdatabaseconnect;

csqlstatement(mysql* pdb, const char *pszsqlstatement);

public:

//行數

int getrowcount(void);

//列數

int getcolumncount(void);

//nposindex started by zero

//列名稱

const char *getcolumnname(int nposindex);

//列id

int getcolumnindex(const char *pszcolumnname);

//獲取整型

int getcolumnvalueint(int nposindex);

//獲取短字串

const char *getcolumnvaluevarchar(int nposindex);

//獲取長字串

const char *getcolumnvaluestring(int nposindex);

//獲取字串

const char *getcolumnvalueblob(int nposindex, int *pnlen);

//獲取浮點型

double getcolumnvaluedouble(int nposindex);

//繫結整型

bool bindint(int nposindex, const int &nvalue);

//繫結短字串

bool bindchar(int nposindex, const char *pszvalue);

//繫結長字串

bool bindstring(int nposindex, const char *pszvalue);

//繫結字串

bool bindblob(int nposindex, const char *pszvalue, int nblobbytes);

//獲取浮點型

bool binddouble(int nposindex, const double &fvalue);

//執行

bool execute(void);

//下一行

bool nextrow(void);

//復位

bool reset(void);

//寫日誌

int writedblog(const char *pszmsg);

//設定sql預處理物件

int setsqlstatement(const char *pszsqlstatement);

private:

//初始化資料

bool initdata(void);

//釋放資料

void freedata(void);

private:

//日誌函式介面

paddlogfunc paddlog;

mysql_stmt *m_pstmt;

mysql* m_pdb;

mysql_res *m_ppreparemetaresult;

mysql_bind *m_pbind;

unsigned long *m_plstringlen;

my_bool *m_pbarray;

int *m_pndataarray;

double *m_pfdataarray;

char **m_pszdataarray;

string m_strsql;

string m_strerrmsg;

int m_nrowcount;

int m_ncolumncount;

int m_nsqltype;

int m_nbindparamflag;

typedef csqlstatement *pcsqlstatement;

//資料庫連線

class cdatabaseconnect

public:

cdatabaseconnect();

virtual ~cdatabaseconnect();

//開啟

bool open(pstconnectparam pstparam);

//關閉

bool close(void);

//獲取mysql物件指標

mysql *getmysql(void);

//獲取指定表名稱的記錄個數

int  gettablerecordcount(const char *psztabelname);

//寫日誌

int writedblog(const char *pszmsg);

//執行sql語句

bool directstatement(const char *pszsqlstatement);

//產生sql預處理物件

csqlstatement* setsqlstatement(const char *pszsqlstatement);

//釋放sql物件

void releasestatement(void);

//獲取指定sql語句的查詢記錄個數

int getrecordcount(const char *szsql);

//事務

bool begintransaction(void);

bool committransaction(void);

bool rollbacktransaction(void);

public:

mysql * m_pdb;

private:

paddlogfunc paddlog;

csqlstatement *m_psqlstatement;

string m_strdbname;

string m_strsql;

string m_strerrmsg;

mysql常用函式封裝(PHP)

mysql常用函式封裝 php 通過建立mysql.func.php指令碼將常用資料庫函式封裝。指令碼函式如下 上一步插入記錄id 連線資料庫 return resource function connect 完成記錄插入的操作 param string table param array arra...

常用封裝函式

目錄 1 建立陣列 陣列去重並過濾陣列中的所有假值 設定獲取sessionstorage 2 判斷返回值是否為陣列 物件 設定獲取sessionstorage 3 一維數字陣列求和 已知sum生成長度b隨機資料 4 生成m n之間長度為l的隨機數組 已知sum生成長度b隨機資料 5 載入當前北京時間...

js常用函式封裝

轉成兩位數 function totwo n 引數說明 str表示原字串變數,表示要插入的字串,sn表示要插入的位置 function insert str,sn 參考 去除空格 type 1 所有空格 2 前後空格 3 前空格 4 後空格 function trim str type 字母大小寫切...