一、首先配置项目属性:
1.打开mysql的安装路径,找到include文件夹和lib文件夹
如图:
2.在vs2013中, 打开项目–> 属性 –>VC++目录
如图:
把将nclude和lib分别添加到包含目录和库目录即可。
3.打开项目 –> 属性 –> 链接器 –> 输入 –> 附加依赖项
如图:
4.最后再把libmysql.dll动态库复制到项目文件下面就可以了。
如图:
MySQL安装目录下lib\
拷贝到vs2013项目目录下
5. 如果你安装的MySQL是64位的, 就要把vs里解决方案平台也设置为64位。
如图:
二、项目属性配置好了就该写代码了。。
这里我写的是一个简单的单表查询程序, 前提是你确保你的mysql数据库中存在这张表。
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
#include <windows.h>
#include <time.h> #include "mysql.h" /*mysql数据库连接头文件*/
#pragma comment(lib, "libmysql.lib"); /*定义几个数据库连接相关宏*/
#define HOST "localhost"
#define USERNAME "****" // MySQL用户名
#define PASSWORD "*******" // 登陆密码
#define DATABASE "stu" // 数据库名 void query_sql(char *sql); int main() { char *query;
query = "SELECT * FROM t_student";// 确保sql语句能执行
query_sql(query);
printf("\n");
system("pause");
return 0;
} void query_sql(char *sql) {
MYSQL *conn; // 数据库连接句柄
int res; // 执行sql返回结标志
MYSQL_RES *res_ptr; // 指向查询结果的指针
MYSQL_FIELD *field; // 字段结构指针
MYSQL_ROW result_row; // 按行返回的查询信息
int row, column;
int i, j; // 初始化mysql连接 my_connection
conn = mysql_init(NULL);
// 建立mysql连接
if (NULL != mysql_real_connect(conn, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) { printf("数据库查询query_sql连接成功!\n"); // 设置查询编码为gbk, 支持中文
mysql_query(conn, "set names gbk");
res = mysql_query(conn, sql); if (res) { // sql执行失败
printf("Error: mysql_query!\n");
mysql_close(conn);
}
else { // 执行成功 // 将查询结果给res_ptr
res_ptr = mysql_store_result(conn); // 如果结果不为空就将结果打印到控制台
if (res_ptr) {
// 获取查询结果的列数和行数
column = mysql_num_fields(res_ptr);
row = mysql_num_rows(res_ptr);
printf("查询到%d行\n", row); // 输出结果字段的名字
for (i = 0; field = mysql_fetch_field(res_ptr); i++) {
printf("%10s ", field->name);
}
printf("\n"); // 按行输出结果
for (i = 1; i < row + 1; i++) {
result_row = mysql_fetch_row(res_ptr);
for (j = 0; j < column; j++) {
printf("%10s ", result_row[j]);
}
printf("\n");
}
} // 关闭数据库
mysql_close(conn);
} } // 数据库连失败
else {
printf("数据库连接失败!");
} }
这是我的运行结果: