📄 main.cpp
字号:
#include <iostream>
using namespace std;
#include <WINSOCK2.H>
#pragma comment(lib,"ws2_32.lib")
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
#define __MYSQL_PORT (3306)
#define __MYSQL_HOSTNAME "localhost"
#define __MYSQL_USERNAME "root"
#define __MYSQL_PASSWORD "111111"
#define __MYSQL_DBNAME "person_info"
#define __S_LINE__ "----------------------------------\n"
#define MAX_SQL_LENGTH (512)
typedef struct tagDateTime
{
unsigned int year;
unsigned int month;
unsigned int day;
}StDateTime;
typedef struct tagPerson
{
char name[9];
char sex[3];
StDateTime birthday;
unsigned int age;
char qq_no[10];
char tel_num[12];
}StPerson;
bool AddRecord(MYSQL* pSql,StPerson* pData)
{
char sqltext[MAX_SQL_LENGTH];
memset(sqltext,0,MAX_SQL_LENGTH);
if(pSql && pData)
{
sprintf(sqltext,"INSERT PERSON (NAME,SEX,BIRTHDAY,AGE,QQ_NO,TEL_NO) \
VALUES('%s','%s','%04d-%02d-%02d',%d,'%s','%s')",
pData->name,pData->sex,
pData->birthday.year,pData->birthday.month,pData->birthday.day,
pData->age,pData->qq_no,pData->tel_num);
cout<<sqltext<<endl;
int iRet=mysql_query(pSql,sqltext);
if(!iRet)
{
return true;
}
}
return false;
}
bool connect_mysql(MYSQL* pSql)
{
if(pSql)
{
::mysql_init(pSql);
MYSQL* _pSql=::mysql_real_connect(pSql,
__MYSQL_HOSTNAME,
__MYSQL_USERNAME,
__MYSQL_PASSWORD,
__MYSQL_DBNAME,
__MYSQL_PORT,
0,0);
if(_pSql!=pSql)
{
return false;
}
else
{
return true;
}
}
return 0;
}
void print_error(MYSQL* pSql)
{
if(pSql)
{
cout<<mysql_error(pSql)<<endl;
}
}
void print_records(MYSQL_RES *result)
{
if(result)
{
MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
unsigned long *lengths;
lengths = mysql_fetch_lengths(result);
for(i = 0; i < num_fields; i++)
{
char* ptr=row[i];
if(ptr)
{
cout<<ptr;
}
else
{
cout<<"[NULL]";
}
cout<<" ";
}
cout<<endl;
}
}
}
int main()
{
MYSQL sqlObj;
if(!connect_mysql(&sqlObj))
{
cout<<"error:can not connect to mysql database!"<<endl;
return 0;
}
else
{
cout<<"connect to dbserver....OK\n"<<__S_LINE__<<endl;
cout<< mysql_set_character_set(&sqlObj,"gb2312")<<endl;
print_error(&sqlObj);
}
int iRet=0;
/*
//创建数据库
iRet=mysql_query(&sqlObj,"create database person");
if(!iRet)
{
cout<<"create db ok."<<endl;
}
else
{
cout<<"error:"<<print_error(&sqlObj)<<endl;
goto EXIT;
}
*/
//得到当前数据记录
iRet=mysql_query(&sqlObj,"select * from person");
if(iRet)
{
cout<<"error:";
print_error(&sqlObj);
goto EXIT;
}
else
{
MYSQL_RES *result=0;
MYSQL_FIELD* field=0;
result=mysql_store_result(&sqlObj);
if(result)
{
int num_fields = mysql_num_fields(result);
int num_rows=mysql_num_rows(result);
cout<<"there is/are "<<num_fields<<" field(s) in the table!"<<endl;
cout<<"the field(s) is/are: ";
field=mysql_fetch_field(result);
for(int i=0;i<num_fields;i++)
{
cout<<field[i].name<<" ";
}
cout<<endl;
cout<<"there is/are "<<num_rows<<" record(s) in the table!"<<endl;
print_records(result);
mysql_free_result(result);
}
else
{
cout<<"error:";
print_error(&sqlObj);
goto EXIT;
}
}
//添加记录
StDateTime dt;
dt.year=1940;
dt.month=dt.day=1;
StPerson person;
memset(&person,0,sizeof(StPerson));
sprintf(person.name,"张三");
sprintf(person.sex,"男");
person.birthday=dt;
person.age=45;
sprintf(person.tel_num,"13000000000");
if(!AddRecord(&sqlObj,&person))
{
print_error(&sqlObj);
goto EXIT;
}
else
{
cout<<"Insert date ok."<<endl;
}
//关闭连接
EXIT: mysql_close(&sqlObj);
cout<<"close the connection now!"<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -