一、有关数据库操作,封装在DBHelper.h内,代码如下
#include <winsock.h>
#include "mysql.h"
#include<stdio.h>
bool getPassword(char * username, char * &pwd){
MYSQL mysql, *sock;
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql, "localhost", "root", "admin", "windowsPrograming", 0, NULL, 0)))
{
printf("Cannot connect to database:%s\n", mysql_error(sock));
return false;
}
char sqlbuf[200];
sprintf(sqlbuf, "select pass_word from userInfo where user_name=%s", username);
//printf("%s\n", sqlbuf);
if (mysql_query(sock, sqlbuf))
{
printf("Query Failed:%s", mysql_error(sock));
return 0;
}
MYSQL_RES *res;
MYSQL_ROW row;
if (!(res = mysql_store_result(sock)))
{
printf("Failed to store result:%s", mysql_error(sock));
return 0;
}
while (row = mysql_fetch_row(res))
{
pwd = (char *)malloc(sizeof(char *));
strcpy(pwd, (char*)row[0]);
//puts(row[0]);
}
mysql_free_result(res);
mysql_close(sock);
return true;
}
bool isExist(char * username){
MYSQL mysql, *sock;
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql, "localhost", "root", "admin", "windowsPrograming", 0, NULL, 0)))
{
printf("Cannot connect to database:%s\n", mysql_error(sock));
return false;
}
char sqlbuf[200];
sprintf(sqlbuf, "select user_name from userInfo where user_name=%s", username);
if (mysql_query(sock, sqlbuf))
{
printf("Query Failed:%s", mysql_error(sock));
return 0;
}
MYSQL_RES *res;
MYSQL_ROW row;
if (!(res = mysql_store_result(sock)))
{
printf("Failed to store result:%s", mysql_error(sock));
return 0;
}
if (row = mysql_fetch_row(res)){
mysql_free_result(res);
mysql_close(sock);
return true;
}
else
{
mysql_free_result(res);
mysql_close(sock);
return false;
}
}
bool regist(char * username, char * password){
MYSQL mysql, *sock;
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql, "localhost", "root", "admin", "windowsPrograming", 0, NULL, 0)))
{
printf("Cannot connect to database:%s\n", mysql_error(sock));
return false;
}
char sqlbuf[200];
sprintf(sqlbuf, "insert into userInfo(user_name,pass_word) values('%s','%s')", username, password);
if (mysql_query(sock, sqlbuf))
{
printf("Query Failed:%s", mysql_error(sock));
return 0;
}
return true;
}
bool getDelayMessage(char * username, char(*message)[100], int &len){
MYSQL mysql, *sock;
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql, "localhost", "root", "admin", "windowsPrograming", 0, NULL, 0)))
{
printf("Cannot connect to database:%s\n", mysql_error(sock));
return false;
}
char sqlbuf[200];
sprintf(sqlbuf, "select message from delayMess

该博客介绍了如何使用Winsocket编程技术,结合事件选择模型和MySQL数据库,创建一个简易的聊天室应用。内容涉及数据库操作的封装以及登录、同步离线消息的功能实现。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



