服務器和客戶端搭建好后,創建一個屬于銀行職工的類,類里面有職工的姓名,賬號和密碼,首先是注冊,打開自己電腦上的MySQL數據庫,在里面創建一個表格用來存放職工和客戶的信息,然后在客戶端的的注冊里面輸入自己的信息,通過send將信息傳送到服務器中去,因為客戶端會有各種不同的指令傳送過來,所以需要你在類里面設置一些標志符來區分各個指令,服務器根據不同的指令來調用相關的函數,在收到注冊的信息內容后,服務器便會打開本地的mysql,將收到的信息存放到銀行職工的表格里去,下面是服務器操作的數據庫代碼:
打開本地的數據庫:
// 初始化一個連接句柄MYSQL MYSQL* mysql; mysql = mysql_init(NULL); if (mysql == NULL) { PRintf("error: %s/n", mysql_error(mysql)); return 1; } my_bool reconnect = true; mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk"); if (!mysql_real_connect(mysql, NULL, "root", "132097", "gushuaige", 0, NULL, 0)) { printf("error: %s/n", mysql_error(mysql)); return 1; }注冊:
int result; // 沒有返回結果集的操作 char buff[200]; sprintf(buff,"insert into zhigong values('%s',%d,'%s')",(object->shname()).c_str(),object->shaccount(),(object->shpassWord()).c_str()); result = mysql_query(mysql,buff); if (result != 0) { printf("error: %s/n", mysql_error(mysql)); return fail; } else { printf("%llu 行受影響 添加信息成功!/n", mysql_affected_rows(mysql)); return success ; }注冊好后便是登陸,客戶端輸入自己的賬號和密碼傳送給服務器,服務器拿接收到的賬號去找到數據庫中的該欄,將里面的密碼與接收到的密碼進行比較,相同則返回success給客戶端,從而進入操作的界面,不同則給個友好提示返回主界面,重新操作或輸入,下面是登錄的操作代碼:int result ; char buff[200]; sprintf(buff,"select * from zhigong where id=%d;",object->shaccount()); result = mysql_query(mysql, buff); if (result != 0) { printf("error: %s/n", mysql_error(mysql)); return 1; } MYSQL_RES* mysql_res; MYSQL_FIELD* mysql_field; MYSQL_ROW mysql_row; unsigned int cols; mysql_res = mysql_store_result(mysql); cols = mysql_num_fields(mysql_res); if (mysql_res) { while ((mysql_row = mysql_fetch_row(mysql_res))) { for (unsigned int i=0; i<cols; ++i) { printf("%s/t", mysql_row[i] ? mysql_row[i] : "NULL"); } printf("/n"); if(mysql_row[2] == object->shpassword()) { object->setmuser(mysql_row[0],atoi(mysql_row[1]),mysql_row[2]) ; return success ; } else { return fail ; } } mysql_free_result(mysql_res); }
新聞熱點
疑難解答
圖片精選