001
002
003
004
005
006
007
008
009
010
#include <winsock.h>
011
#include <iostream>
012
#include <string>
013
#include <mysql.h>
014
using
namespace
std;
015
016
#pragma comment(lib, "ws2_32.lib")
017
#pragma comment(lib, "libmysql.lib")
018
019
020
#define STEPBYSTEP
021
022
int
main() {
023
cout <<
"****************************************"
<< endl;
024
025
#ifdef STEPBYSTEP
026
system
(
"pause"
);
027
#endif
028
029
030
MYSQL mydata;
031
032
033
if
(0 == mysql_library_init(0, NULL, NULL)) {
034
cout <<
"mysql_library_init() succeed"
<< endl;
035
}
else
{
036
cout <<
"mysql_library_init() failed"
<< endl;
037
return
-1;
038
}
039
040
#ifdef STEPBYSTEP
041
system
(
"pause"
);
042
#endif
043
044
045
if
(NULL != mysql_init(&mydata)) {
046
cout <<
"mysql_init() succeed"
<< endl;
047
}
else
{
048
cout <<
"mysql_init() failed"
<< endl;
049
return
-1;
050
}
051
052
#ifdef STEPBYSTEP
053
system
(
"pause"
);
054
#endif
055
056
057
058
if
(0 == mysql_options(&mydata, MYSQL_SET_CHARSET_NAME,
"gbk"
)) {
059
cout <<
"mysql_options() succeed"
<< endl;
060
}
else
{
061
cout <<
"mysql_options() failed"
<< endl;
062
return
-1;
063
}
064
065
#ifdef STEPBYSTEP
066
system
(
"pause"
);
067
#endif
068
069
070
if
(NULL
071
!= mysql_real_connect(&mydata,
"localhost"
,
"root"
,
"test"
,
"test"
,
072
3306, NULL, 0))
073
074
{
075
cout <<
"mysql_real_connect() succeed"
<< endl;
076
}
else
{
077
cout <<
"mysql_real_connect() failed"
<< endl;
078
return
-1;
079
}
080
081
#ifdef STEPBYSTEP
082
system
(
"pause"
);
083
#endif
084
085
086
string sqlstr;
087
088
089
sqlstr =
"CREATE TABLE IF NOT EXISTS user_info"
;
090
sqlstr +=
"("
;
091
sqlstr +=
092
"user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',"
;
093
sqlstr +=
094
"user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',"
;
095
sqlstr +=
096
"user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'"
;
097
sqlstr +=
");"
;
098
if
(0 == mysql_query(&mydata, sqlstr.c_str())) {
099
cout <<
"mysql_query() create table succeed"
<< endl;
100
}
else
{
101
cout <<
"mysql_query() create table failed"
<< endl;
102
mysql_close(&mydata);
103
return
-1;
104
}
105
106
#ifdef STEPBYSTEP
107
system
(
"pause"
);
108
#endif
109
110
111
sqlstr =
112
"INSERT INTO user_info(user_name) VALUES('公司名称'),('一级部门'),('二级部门'),('开发小组'),('姓名');"
;
113
if
(0 == mysql_query(&mydata, sqlstr.c_str())) {
114
cout <<
"mysql_query() insert data succeed"
<< endl;
115
}
else
{
116
cout <<
"mysql_query() insert data failed"
<< endl;
117
mysql_close(&mydata);
118
return
-1;
119
}
120
121
#ifdef STEPBYSTEP
122
system
(
"pause"
);
123
#endif
124
125
126
sqlstr =
"SELECT user_id,user_name,user_second_sum FROM user_info"
;
127
MYSQL_RES *result = NULL;
128
if
(0 == mysql_query(&mydata, sqlstr.c_str())) {
129
cout <<
"mysql_query() select data succeed"
<< endl;
130
131
132
result = mysql_store_result(&mydata);
133
134
int
rowcount = mysql_num_rows(result);
135
cout <<
"row count: "
<< rowcount << endl;
136
137
138
unsigned
int
fieldcount = mysql_num_fields(result);
139
MYSQL_FIELD *field = NULL;
140
for
(unsigned
int
i = 0; i < fieldcount; i++) {
141
field = mysql_fetch_field_direct(result, i);
142
cout << field->name <<
"\t\t"
;
143
}
144
cout << endl;
145
146
147
MYSQL_ROW row = NULL;
148
row = mysql_fetch_row(result);
149
while
(NULL != row) {
150
for
(
int
i = 0; i < fieldcount; i++) {
151
cout << row[i] <<
"\t\t"
;
152
}
153
cout << endl;
154
row = mysql_fetch_row(result);
155
}
156
157
}
else
{
158
cout <<
"mysql_query() select data failed"
<< endl;
159
mysql_close(&mydata);
160
return
-1;
161
}
162
163
#ifdef STEPBYSTEP
164
system
(
"pause"
);
165
#endif
166
167
168
sqlstr =
"DROP TABLE user_info"
;
169
if
(0 == mysql_query(&mydata, sqlstr.c_str())) {
170
cout <<
"mysql_query() drop table succeed"
<< endl;
171
}
else
{
172
cout <<
"mysql_query() drop table failed"
<< endl;
173
mysql_close(&mydata);
174
return
-1;
175
}
176
mysql_free_result(result);
177
mysql_close(&mydata);
178
mysql_server_end();
179
180
system
(
"pause"
);
181
return
0;
182
}