基于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 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPでint型をbyte型に変換する方法を詳しく解説 PHPでは、ネットワークデータ送信やファイル処理、暗號化アルゴリズムなどを扱う場合など、整數(shù)型(int)をバイト型(Byte)に変換する必要が生じることがよくあります。 。この記事では、int型をbyte型に変換する方法と具體的なコード例を詳しく紹介します。 1. int 型と byte の関係 コンピュータ分野では、基本データ型 int は整數(shù)を表しますが、byte (バイト) はコンピュータの記憶単位で、通常は 8 ビットのバイナリデータです

int32 の値の範囲は、-2 の 31 乗から 2 の 31 乗 - 1、つまり -2147483648 ~ 2147483647 です。 int32 は符號付き整數(shù)型です。つまり、正の數(shù)、負の數(shù)、ゼロを表現(xiàn)できます。1 ビットを符號ビットの表現(xiàn)に使用し、殘りの 31 ビットは數(shù)値の表現(xiàn)に使用されます。符號ビットを表すために 1 ビットが使用されるため、int32 の有効ビット數(shù)は 31 です。

C++ では、int 型の変數(shù)は正または負の整數(shù)値のみを保持でき、10 進數(shù)値を保持できません。この目的に使用できる float 値と double 値があります。 double データ型は、小數(shù)點以下 7 桁までの小數(shù)を格納するために作成されました。整數(shù)から double データ型への変換は、コンパイラによって自動的に実行することも (「暗黙的」変換と呼ばれます)、プログラマがコンパイラに明示的に要求することもできます (「明示的」変換と呼ばれます)。次のセクションでは、さまざまな変換方法について説明します。暗黙的な変換 コンパイラは暗黙的な型変換を自動的に実行します。これを?qū)g現(xiàn)するには、浮動小數(shù)點型と整數(shù)型の 2 つの変數(shù)が必要です。浮動小數(shù)點値または変數(shù)を整數(shù)変數(shù)に代入するだけでは、コンパイラが他のすべてのことを処理します。

変換方法: 1. Itoa() 関數(shù)を使用し、構(gòu)文 "strconv.Itoa(num)" 2. FormatInt() 関數(shù)を使用して、int 型データを指定した基數(shù)に変換し、文字列の形式で返します。構(gòu)文「strconv .FormatInt(num,10)」。

Java では、int は 32 ビットの符號付きデータ型であり、その変數(shù)には 32 ビットのメモリが必要です。int データ型の有効範囲は -2147483648 ~ 2147483647 で、この範囲內(nèi)のすべての整數(shù)は整數(shù)リテラルと呼ばれます。 「int num1 = 21;」のように、整數(shù)リテラルを int 変數(shù)に割り當てることができます。

int 型が占めるバイト數(shù)は、プログラミング言語やハードウェア プラットフォームによって異なる場合があります。詳細な紹介: 1. C 言語では、int 型は通常 2 バイトまたは 4 バイトを占有します。 32 ビット システムでは、int 型は 4 バイトを占有しますが、16 ビット システムでは、int 型は 2 バイトを占有します。 64 ビット システムでは、int 型は 8 バイトを占有する可能性があります; 2. Java では、int 型は通常 4 バイトを占有しますが、Python では int 型にはバイト制限がなく、自動的に調(diào)整できます。

PHP プログラムを作成する場合、多くの場合、整數(shù)データを格納するために int 型を使用する必要があります。ただし、プログラミング言語が異なると、データを保存するときに占有するバイト數(shù)が異なる場合があります。したがって、一部の PHP プログラマーは、「PHP の int 型は何バイトを占めるのですか?」と尋ねるかもしれません。

int は 4 バイトを占めます。これは、int 変數(shù)が -2,147,483,648 から 2,147,483,647 の範囲の整數(shù)値を格納できることを意味します。場合によっては、2 バイトまたは 8 バイトになることもあります。一般的に使用されるデータ型は、整數(shù)を表すために使用されます。プログラムの正確さとパフォーマンスを確保するには、特定の狀況に応じて適切なデータ型を選択する必要があります。
