首页 数据库 mysql教程 C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

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

Jun 01, 2016 pm 01:13 PM
windows 工程 控制台 数据库开发

<strong>一、开发环境</strong>
登录后复制

Win8.1 64位、VS2013、MySQL5.5.3764位

MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5

<strong>二、配置工程环境</strong>
登录后复制

首先创建一个控制台空项目,打开VS2013,文件--> 新建项目 --> 常规 --> 选择“空项目”
登录后复制



      因为我们要使用MySQL数据库的API接口编程,所以需要将工程的附加头文件搜索目录和附件库文件搜索目录,指向MySQL安装目录对应的位置,下面是我机子上mysql库和头文件目录:



将VS2013工程的附加头文件目录和附加库目录指向上面两个目录。


1> 配置头文件目录

打开工程配置属性窗口--> C/C --> 常规 --> 附加包含目录,把mysql的include目录添加到附加包含目录中,如下图所示:






2> 配置库文件目录

打开工程配置窗口--> 链接器--> 常归 --> 附加库目录,把mysql的lib目录添加到附加库目录中,如下图所示:



打开工程配置窗口--> 链接器--> 输入-->附中依赖项,打libmysql.lib静态库添加到工程编译依赖项,如下图所示:






将libmysql.dll动态库拷贝到工程的根目录或Debug目录下:




<strong>三、测试开发环境</strong>
登录后复制
#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <mysql.h>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 < field_count; i++)	{		printf("%s/t", fields[i].name);	}	printf("/n");		// 遍历结果集的每一行数据	while (row = mysql_fetch_row(res))	{		for (i = 0; i < field_count; i++)		{			printf("%s/t", row[i]);		}		printf("/n");	}}
登录后复制

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数据库

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
mysql怎么复制粘贴 mysql怎么复制粘贴 Apr 08, 2025 pm 07:18 PM

MySQL 中的复制粘贴包含以下步骤:选择数据,使用 Ctrl C(Windows)或 Cmd C(Mac)复制;在目标位置右键单击,选择“粘贴”或使用 Ctrl V(Windows)或 Cmd V(Mac);复制的数据将插入到目标位置,或替换现有数据(取决于目标位置是否已存在数据)。

vs code 可以在 Windows 8 中运行吗 vs code 可以在 Windows 8 中运行吗 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上运行,但体验可能不佳。首先确保系统已更新到最新补丁,然后下载与系统架构匹配的VS Code安装包,按照提示安装。安装后,注意某些扩展程序可能与Windows 8不兼容,需要寻找替代扩展或在虚拟机中使用更新的Windows系统。安装必要的扩展,检查是否正常工作。尽管VS Code在Windows 8上可行,但建议升级到更新的Windows系统以获得更好的开发体验和安全保障。

sublime写好代码后如何运行 sublime写好代码后如何运行 Apr 16, 2025 am 08:51 AM

在 Sublime 中运行代码的方法有六种:通过热键、菜单、构建系统、命令行、设置默认构建系统和自定义构建命令,并可通过右键单击项目/文件运行单个文件/项目,构建系统可用性取决于 Sublime Text 的安装情况。

Debian中Tigervnc支持哪些操作系统 Debian中Tigervnc支持哪些操作系统 Apr 12, 2025 pm 10:15 PM

开源VNC工具Tigervnc兼容众多操作系统,其中包括Windows、Linux和macOS。本文将详细介绍Tigervnc在Debian系统上的应用情况。Tigervnc在Debian系统的应用系统集成:在Debian系统中,Tigervnc作为VNC服务器组件被集成到系统中。用户可通过命令行工具(例如vncserver)启动VNC服务,并自定义显示设置,如分辨率和色彩深度。跨平台连接:Tigervnc客户端支持Windows、Linux和macOS,这意味着用户可以从任何运行这

如何解决Laravel中复杂的BelongsToThrough关系问题?使用Composer可以! 如何解决Laravel中复杂的BelongsToThrough关系问题?使用Composer可以! Apr 17, 2025 pm 09:54 PM

在Laravel开发中,处理复杂的模型关系一直是个挑战,特别是当涉及到多层级的BelongsToThrough关系时。最近,我在处理一个多级模型关系的项目中遇到了这个问题,传统的HasManyThrough关系无法满足需求,导致数据查询变得复杂且低效。经过一番探索,我找到了staudenmeir/belongs-to-through这个库,它通过Composer轻松安装并解决了我的困扰。

laravel安装代码 laravel安装代码 Apr 18, 2025 pm 12:30 PM

要安装 Laravel,需依序进行以下步骤:安装 Composer(适用于 macOS/Linux 和 Windows)安装 Laravel 安装器创建新项目启动服务访问应用程序(网址:http://127.0.0.1:8000)设置数据库连接(如果需要)

Mac系统中的系统维护与优化工具推荐 Mac系统中的系统维护与优化工具推荐 Apr 12, 2025 pm 04:45 PM

Mac 系统维护包括:磁盘管理(使用 OmniDiskSweeper 清理磁盘空间,用磁盘工具检查磁盘错误)内存管理(用 Activity Monitor 监控内存占用,结束占用过高的进程)启动项管理(用 Linc 或 LaunchControl 管理启动项,禁用不必要的启动项)系统缓存清理(用 CleanMyMac X 或手动清理系统缓存)软件更新(及时更新系统和应用程序)定期备份(使用 Time Machine 定期备份数据)良好使用习惯(不过度安装应用程序,定期清理文件,监控系统日志)

git软件安装 git软件安装 Apr 17, 2025 am 11:57 AM

安装 Git 软件包括以下步骤:下载安装包运行安装包验证安装配置 Git安装 Git Bash(仅限 Windows)

See all articles