可查看帮助文档:http://dev.mysql.com/doc/refman/5.1/zh/apis.html
=======================
网上的一个例子:
1 #include <string.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <winsock2.h>
5 #include <mysql/mysql.h>/*注意要包含这个头文件*/
6 #pragma comment(lib,"libmysql")
7 /*定义了一些数据库连接需要的宏*/
8 #define HOST "localhost"
9 #define USERNAME "root"
10 #define PASSWORD "123456"
11 #define DATABASE "test"
12 /*这个函数用来执行传入的sql語句*/
13 void exe_sql(char* sql) {
14 MYSQL my_connection; /*这是一个数据库连接*/
15 int res; /*执行sql語句后的返回标志*/
16 /*初始化mysql连接my_connection*/
17 mysql_init(&my_connection);
18 /*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并
19 返回一个值,返回不为空证明连接是成功的*/
20 if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD,
21 <div style="text-indent: 28px;"></div>DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*连接成功*/ //连接成功返回mysql*连接句柄,失败返回NULL
22 printf("数据库执行exe_sql连接成功!n");
23 /*这句话是设置查询编码为utf8,这样支持中文*/
24 mysql_query(&my_connection, "set names utf8");
25 /*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句,
26 这会返回一个int值,如果为0,证明語句执行成功*/
27 res = mysql_query(&my_connection, sql);
28 if (res) {/*现在就代表执行失败了*/
29 printf("Error: mysql_query !\n");
30 /*不要忘了关闭连接*/
31 mysql_close(&my_connection);
32 } else {/*现在就代表执行成功了*/
33 /*mysql_affected_rows会返回执行sql后影响的行数*/
34 printf("%d 行受到影响!\n",
35 mysql_affected_rows(&my_connection));
36 /*不要忘了关闭连接*/
37 mysql_close(&my_connection);
38 }
39 } else {
40 /*数据库连接失败*/
41 printf("数据库执行exe_sql连接失败!\n");
42 }
43 }
44 /*这个函数用来执行传入的sql語句,并打印出查询結果*/
45 void query_sql(char* sql) {
46 MYSQL my_connection; /*这是一个数据库连接*/
47 int res; /*执行sql語句后的返回标志*/
48 MYSQL_RES *res_ptr; /*指向查询结果的指针*/
49 MYSQL_FIELD *field; /*字段结构指针*/
50 MYSQL_ROW result_row; /*按行返回的查询信息*/
51 int row, column; /*查询返回的行数和列数*/
52 int i, j; /*只是控制循环的两个变量*/
53 /*初始化mysql连接my_connection*/
54 mysql_init(&my_connection);
55 /*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并
56 返回一个值,返回不为空证明连接是成功的*/
57 if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD,
58 DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*连接成功*/
59 printf("数据库查询query_sql连接成功!\n");
60 /*这句话是设置查询编码为utf8,这样支持中文*/
61 mysql_query(&my_connection, "set names utf8");
62 /*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句,
63 这会返回一个int值,如果为0,证明語句执行成功;非0证明执行失败*/
64 res = mysql_query(&my_connection, sql);
65 if (res) { /*现在就代表执行失败了*/
66 printf("Error: mysql_query !\n");
67 /*不要忘了关闭连接*/
68 mysql_close(&my_connection);
69 } else { /*现在就代表执行成功了*/
70 /*将查询的結果给res_ptr*/
71 res_ptr = mysql_store_result(&my_connection);
72 /*如果结果不为空,就把结果print*/
73 if (res_ptr) {
74 /*取得結果的行数和*/
75 column = mysql_num_fields(res_ptr);
76 row = mysql_num_rows(res_ptr) + 1;
77 printf("查询到 %lu 行 \n", row);
78 /*输出結果的字段名*/
79 for (i = 0; field = mysql_fetch_field(res_ptr); i++)
80 printf("%st", field->name);
81 printf("\n");
82 /*按行输出結果*/
83 for (i = 1; i < row; i++) {
84 result_row = mysql_fetch_row(res_ptr);
85 for (j = 0; j < column; j++)
86 printf("%st", result_row[j]);
87 printf("\n");
88 }
89 }
90 /*不要忘了关闭连接*/
91 mysql_close(&my_connection);
92 }
93 }
94 }
95 int main(int argc, char *argv[]) {
96 /*测试下向里面插入数据*/
97 char *query;
98 char *exe = "insert into student values('lala','hahhahah!');";
99 exe_sql(exe);
100 *测试下查询*/
101 query="select * from student;";
102 query_sql(query);
103 return 0;
104 }