您好,欢迎访问一九零五行业门户网

C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

一、开发环境
win8.1 64位、vs2013、mysql5.5.3764位
mysql安装目录为:c:/program files/mysql/mysql server 5.5
二、配置工程环境
首先创建一个控制台空项目,打开vs2013,文件--> 新建项目 --> 常规 --> 选择“空项目”
因为我们要使用mysql数据库的api接口编程,所以需要将工程的附加头文件搜索目录和附件库文件搜索目录,指向mysql安装目录对应的位置,下面是我机子上mysql库和头文件目录:
将vs2013工程的附加头文件目录和附加库目录指向上面两个目录。
1> 配置头文件目录
打开工程配置属性窗口--> c/c++ --> 常规 --> 附加包含目录,把mysql的include目录添加到附加包含目录中,如下图所示:
2> 配置库文件目录
打开工程配置窗口--> 链接器--> 常归 --> 附加库目录,把mysql的lib目录添加到附加库目录中,如下图所示:
打开工程配置窗口--> 链接器--> 输入-->附中依赖项,打libmysql.lib静态库添加到工程编译依赖项,如下图所示:
将libmysql.dll动态库拷贝到工程的根目录或debug目录下:
三、测试开发环境
#include #include #include #include void testquery(mysql *mysql); // 测试查询数据void main(){ mysql *mysql = null; /*初始化mysql连接句柄*/ mysql = mysql_init((mysql *)0); if (!mysql) { return; } /* 连接数据库,连接成功返回conn,否则返回null 参数1:mysql_init初始化数据库返回的mysql句柄 参数2:数据库服务器地址 参数3:数据库用户名 参数4:数据库密码 参数5:数据库名称 参数6:数据库端口,为0表示默认3306 参数7:如果unix_socket不是null,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型 参数8:通常是0 */ mysql = mysql_real_connect(mysql, localhost,root, root, test, 0, null, 0); if (mysql) { printf(connection succellfull the database!/n); } else { printf(connection error:%d, %s/n,mysql_errno(mysql), mysql_error(mysql)); } // 查询数据 testquery(mysql); // 关闭连接 mysql_close(mysql); system(pause);}// 测试查询void testquery(mysql *mysql){ mysql_row row; mysql_res *res = null; mysql_field *fields = null; int i, field_count; char *sql = select * from t_user; int flag = mysql_real_query(mysql, sql, (unsigned long)strlen(sql)); if (flag) { printf(query error:%d, %s/n,mysql_errno(mysql), mysql_error(mysql)); return; } // 将查询结果读到内存当中 res = mysql_store_result(mysql); // 获取结果集中的所有字段 fields = mysql_fetch_fields(res); // 字段数量 field_count = mysql_field_count(mysql); for (i = 0; i mysql测试数据及表结构:
drop table if exists `t_user`;create table `t_user` (`id` int(11) not null auto_increment,`name` varchar(32) default null,`age` int(11) default null,`address` varchar(100) default null,primary key (`id`)) engine=innodb auto_increment=3 default charset=utf8;lock tables `t_user` write;insert into `t_user` values (1,'zhangsan',22,'hunan'),(2,'lisi',30,'beijin');unlock tables;
测试结果:
小结配置步聚:
1> 安装mysql
2> 创建vs工程,配置工程头文件(mysql.h所在目录)和库文件(libmysql.lib所在目录)附加目录,指向mysql对应的目录
3> 将libmysql.dll动态库拷贝到工程根目录或debug目录
4> 编写测试程序,验证c连接mysql数据库
----------------------------------------------------------------------优雅的分割线------------------------------------------------------------------------------------
常见错误:
1、main.obj : error lnk2019: 无法解析的外部符号 mysql_init。。。。。
原因是没有在工程当中添加libmysql.lib配置,配置库文件目录
2、无法启动此程序,因为计算机中丢失libmyslq.dll。。。。
将libmysql.dll动态库拷贝到工程的根目录或debug目录下。
3、未引入windows.h头文件,因为在windows连接mysql是通过socket方式与数据库进行通信的
4、main.obj : error lnk2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用.....
数据库位数与编译位数不一致,导致在链接时mysql的库函数找不到,比如:我的mysql是64位,提供的库当然是64位的,如果你在vs上用32位的平台去编译就会造成链接时出错。
修改编译平台,工程-->属性-->配置管理器-->在解决方案的工程列表中选择对应的项目,并将其修改成32位或64位,如果没有就新建一个。
工程源码下载:windows平台c连接mysql数据库
参考文档:
c/c++连接mysql数据库
其它类似信息

推荐信息