1 配置
win7 32bit,mysql5.5,vs2008
- vc路径设置,工具 -> 选项 -> 项目和解决方案 -> VC++ 路径,Platform选择Win32,然后
Include files中添加D:\Program Files\MySQL\MySQL Connector.C 6.1\include
Library files中添加D:\Program Files\MySQL\MySQL Connector.C 6.1\lib
注意:高版本的VS如2013已经将该设置迁移到项目属性中;以上路径根据安装位置做相应修改。 - 附加依赖项设置,项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项,编辑加入
libmysql.lib
。(也可直接在代码中加入#pragma comment(lib, "libmysql.lib")
语句) libmysql.dll
设置,MySQL安装后该文件在D:\Program Files\MySQL\MySQL Connector.C 6.1\lib
路径下,由于该路径并没有加到环境变量Path
中,因此程序运行会出现“找不到libmysql.dll”的错误。可将该路径加到环境变量Path
中,也可将libmysql.dll
文件拷贝到程序路径下或Path
中的某个路径,而通常是将libmysql.dll
文件拷贝到系统路径C:\Windows\System32
中。
关于以上路径的说明见我的另一篇博文
2 函数介绍
下表列出了本文用到的mysql函数
函数 | 说明 |
---|---|
mysql_init | mysql初始化 |
mysql_real_connect | 连接mysql |
mysql_query | 执行SQL语句 |
mysql_store_result | 保存查询的结果 |
mysql_fetch_row | 取出结果中的一行 |
mysql_free_result | 释放结果集 |
mysql_close | 关闭连接 |
3 示例程序
#include <stdio.h>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib")
int main(void)
{
const char* host = "127.0.0.1";
const char* user = "root";
const char* passwd = "******";
const char* db = "sakila";
unsigned int port = 3306;
const char * query = "select * from country"; // 查询语句
MYSQL mysql; // 声明MySQL的句柄
MYSQL_RES* result; // 结果集
MYSQL_ROW row; // 结果集中的一行
mysql_init(&mysql); // MySQL初始化
if (!mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0)) // 连接MySQL
{
fprintf(stderr, "连接失败(%s)\n", mysql_error(&mysql));
return 1;
}
else
{
printf("连接成功\n");
}
if (mysql_query(&mysql, query)) // 执行SQL语句
{
fprintf(stderr, "查询失败!\n");
mysql_close(&mysql); // 关闭连接
return 1;
}
else
{
if ((result = mysql_store_result(&mysql)) == NULL) // 保存查询的结果
{
fprintf(stderr, "保存结果集失败!\n");
mysql_close(&mysql); // 关闭连接
return 1;
}
else
{
printf("id\tcity\n==\t========\n");
while ((row = mysql_fetch_row(result))) // 取出结果中的一行
{
printf("%s\t%s\n", row[0], row[1]);
}
}
}
mysql_free_result(result); // 释放结果集
mysql_close(&mysql); // 关闭连接
printf("连接关闭\n");
system("pause");
return 0;
}
运行结果
本文原文链接 http://blog.youkuaiyun.com/yanglx2022/article/details/46565697