基于mysql的bbs設(shè)計(三)
Jun 08, 2016 pm 05:33 PM對于底層數(shù)據(jù)庫,調(diào)用mysql的C API函數(shù)來進行數(shù)據(jù)庫的修改,內(nèi)部保存
一定的狀態(tài)變量(例如用戶名,還是留給上一層完成?),對上一層,則提供
用戶管理的接口。
Class UserManage {
private:
char myuserid[20]; // 用戶的id,未登陸前為空
time logintime; // 用戶登陸時間,并用于計算停留時間
char loginhost[20]; //上站地點。
public:
int NewUser( char *userid, char *passwd );
新建一個用戶,判斷是否已經(jīng)有,其他資料暫時為空,
firstlogintime,權(quán)限等設(shè)缺省值。
int UserLogin( char *userid, char *passwd );
用戶登陸,驗證密碼,
int ChangePasswd( char *oldpasswd, char *newpasswd );
修改密碼,要求原密碼一致。
int ChangePriData( char *newname, char *newemail,
char *newaddr );
改變基本數(shù)據(jù),泥稱,email,住址。。。。
int ModifyNumData( int addlogin, int addpost );
修改文章數(shù),上站次數(shù),等數(shù)據(jù)。。。。注意調(diào)用對象。
int UserLogout();
用戶退出,修改lastlogin,staytime,loginhost等
// 普通查詢命令
int QueryCommonData( const char * userid, int& loginnum,
char * username, int& postnum,
time& lastlogin, char *lasthost );
查詢網(wǎng)友基本信息。
// 特權(quán)指令,函數(shù)在完成功能前,先判斷權(quán)限。
int QueryPriData( const char * userid, char *email,
char *addr );
查詢基本信息,普通人只能查自己,有特權(quán)才能查其他人。
int ModifyUserLevel( BOOL isAdd, unsigned long level );
修改用戶的權(quán)限,
int ModifyUserId( char *oldid, char *newid );
char *newemail, char *newaddr );
修改用戶的基本數(shù)據(jù)。
int ModifyUserNumdata( char *userid, int addlogin, int addpost );
修改用戶的文章數(shù)等數(shù)據(jù)。
int ModifyUserPasswd( char *userid, char *newpasswd );
修改用戶的密碼。
}
以上各個函數(shù)難度不大,都是執(zhí)行相應(yīng)的sql語句,訪問mysql數(shù)據(jù)庫,
是否將一般指令歸到特權(quán)指令中去呢?權(quán)限的檢查,是放在這一層還是上一層?
這更多的是看考慮的著重點,是看程序的清晰性還是代碼的簡練,可能還是
看代碼吧,畢竟要考慮訪問量,另外,上層服務(wù)層是否也應(yīng)該考慮權(quán)限檢查
問題呢?

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











PHP?? int?? byte? ???? ??? ?? ??? ?? PHP??? ???? ??? ???? ?? ??, ??? ???? ?? ?? ? ???(int)? byte(byte)??? ???? ?? ??? ????. . ?? ???? int?? byte??? ???? ??? ??? ???? ???? ?? ??? ???????. 1. int?? byte? ?? ??? ???? ?? ???? int? ??? ????, byte(???)? ??? ?? ??? ?? 8?? ???? ?????.

int32? ? ??? -2? 31??? 2? 31? - 1, ? -2147483648?? 2147483647?????. int32? ?? ?? ?? ?????. ?, ??, ?? ? 0? ??? ? ????. 1??? ???? ?? ??? ???? ??? 31??? ?? ?? ???? ? ?????. ????? ????? 1??? ????? int32??? ???? 31??.

C++?? int ??? ??? ?? ?? ?? ?? ?? ??? ? ??? ?? ?? ??? ? ????. ?? ?? float ? double ?? ??? ? ????. double ????? ??? ?? 7???? ??? ?? ???? ???? ?? ???????. ??? double ??? ???? ???? ?? ????? ?? ???? ?????("???" ????? ?) ?????? ?????? ????? ??? ? ????("???" ????? ?). ?? ????? ??? ?? ??? ????. ??? ?? ????? ??? ?? ??? ???? ?????. ?? ????? ?? ??? ??? ?? ??? ? ?? ??? ?????. ??? ?? ??? ??? ??? ?? ??? ???? ????? ?? ?? ??? ?????.

?? ??: 1. Itoa() ??? ???? "strconv.Itoa(num)" ??? ?????. 2. FormatInt() ??? ???? int ??? ???? ??? ???? ???? ??? ???? ?????. ?? "strconv .FormatInt(num,10)".

Java?? int? 32?? ?? ?? ??? ???? ?? ???? 32?? ???? ?????. int ??? ??? ??? ??? -2147483648?? 2147483647?? ? ??? ?? ??? ?? ?????? ???. ?? ???? "int num1 = 21;"? ?? int ??? ??? ? ????.

int ??? ???? ??? ?? ????? ?? ? ???? ???? ?? ?? ? ????. ??? ??: 1. C ???? int ??? ????? 2??? ?? 4???? ?????. 32?? ?????? int ??? 4???? ????, 16?? ?????? int ??? 2???? ?????. 64?? ????? int ??? 8???? ??? ? ????. 2. Java??? int ??? ????? 4???? ???? ??, Python??? int ??? ??? ??? ??? ???? ??? ? ????.

PHP ????? ??? ? ?? ???? ???? ?? int ??? ???? ?? ??? ????. ??? ????? ??? ?? ???? ??? ? ???? ??? ?? ?? ? ????. ??? ?? PHP ?????? ??? ?? ??? ? ????. PHP?? int ??? ? ???? ??????

int? 4???? ?????. ?? int ??? -2,147,483,648?? 2,147,483,647??? ?? ?? ??? ? ??? ?????. ?? ???? 2???? ?? ?? 8???? ?? ????. Int? ??? ???? ? ???? ??? ?????. ????? ???? ??? ????? ?? ??? ?? ??? ??? ??? ???? ???.
