服务器和客户端搭建好后,创建一个属于银行职工的类,类里面有职工的姓名,账号和密码,首先是注册,打开自己电脑上的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);
}