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 字母大小寫切...