C/C++连接MySQL

embedded/2024/9/23 23:33:13/

今天刚学习了MySQL,于是去尝试能否让C/C++连接上MySQL,一番尝试后也是成功了,把经验分享给大家!

1.首先我们需要找到MySQL所在的目录下,一般默认安装路径都在C:\Program Files\MySQL\MySQL Server 8.0下

2.随后我们打开Visual Studio,新建一个空的项目或者控制台应用(前者需要自己建头文件和源文件,后者会自动生成一个项目名.cpp):

3.将上面的x86改成x64:

4.鼠标右击解决方案资源管理器里的mysql,选择属性栏:

5.在其中的vc++目录里的包含目录改成mysql文件中的include文件所在位置,依次点击:

6.在其中的vc++目录里的库目录改成mysql文件中的lib文件所在位置:

7.向链接器的输入里的附加依赖项添加mysql文件中的libmysql.lib,不要写路径,注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。

8.接下来有两种方法,一是把mysql安装目录里的lib\libmysql.dll复制到c:\windows\system32下,但我没有成功,这可能会导致无法解析的外部符号等问题,另一种方法就是将libmysql.dll复制到你的这个项目文件夹下

9.我在网上找到了一段代码,大家拿去运行,能成功则说明没问题了!

#include<mysql.h>
#include<stdio.h>//mysql 文件
int main()
{MYSQL mysql;//数据库句柄MYSQL_RES* res;//查询结果集MYSQL_ROW row;//记录结构体//初始化数据库mysql_init(&mysql);//设置字符编码mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");//连接数据库
//这里需要输入自己的本机名和密码,若全为默认,只需更改*处为自己的密码以及”xsgl“处改成自己创建的数据库即可if (mysql_real_connect(&mysql, "127.0.0.1", "root","******", "xsgl", 3306, NULL, 0) == NULL) {printf("错误原因: %s\n", mysql_error(&mysql));printf("连接失败!\n");exit(-1);}//查询数据//student为xsgl数据库中存在的表int ret = mysql_query(&mysql, "select * from student;");printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给ROW赋值,判断ROW是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)){printf("%s ", row[0]);//学号printf("%s ", row[1]);//姓名printf("%s ", row[2]);//性别printf("%s ", row[3]);//年龄printf("%s \n", row[4]);//籍贯}//释放结果集mysql_free_result(res);//关闭数据库mysql_close(&mysql);system("pause");return 0;
}


http://www.ppmy.cn/embedded/56751.html

相关文章

LeetCode415-字符串相加

题目 代码 public String addStrings(String num1, String num2) {if (num1 null) {return num2;}if (num2 null) {return num1;}int min Math.min(num1.length(), num2.length());int abs Math.abs(num1.length() - num2.length());// 0.字符串对齐&#xff08;补0&…

为适配kubelet:v0.4 安装指定版本的docker

系统版本信息 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) iso 文件下载地址 https://vault.centos.org/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso0.4 版本的kubelet 报错信息记录 E0603 19:00:38.273720 44142 kubelet.go:734] Error synci…

Redies基础篇(一)

Redis 是一个高性能的key-value数据库。Redies支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作&#xff0c;而且这些操作都是原子性的&#xff…

编程新纪元:AI辅助工具豆包Marscode体验

自从ChatGPT带动全球AI热潮&#xff0c;AI席卷着各行各业。编程界也不例外&#xff0c;早期做过了Github Copilot、阿里的通义灵码等AI编程插件的体验 p.s.以上的下载量与评分均只是plugins.jetbrains的marketplace数据&#xff0c;仅供参考 基本AI编程工具的功能都差不多&…

GitHub Copilot API

1. 引言 GitHub Copilot&#xff1a;智能编程的革新者 在软件开发的浩瀚宇宙中&#xff0c;GitHub Copilot犹如一颗璀璨的新星&#xff0c;以其独特的魅力引领着智能编程的新纪元。作为GitHub与OpenAI合作推出的革命性工具&#xff0c;Copilot不仅仅是一个简单的代码补全插件…

Vue异步操作发送AJAX请求

5. Vue异步操作 1 axios介绍 在Vue中发送异步请求&#xff0c;本质上还是AJAX。我们可以使用axios这个插件来简化操作&#xff01; 使用步骤 1.引入axios核心js文件。 2.调用axios对象的方法来发起异步请求。 3.调用axios对象的方法来处理响应的数据。 axios常用方法 代码…

银湖资本深耕中国市场:助力“一带一路”与技术创新的全球布局

银湖资本&#xff08;Silver Lake&#xff09;作为全球领先的技术投资公司&#xff0c;近年来在中国市场的布局引起了广泛关注。其最新宣布的第七只旗舰基金Silver Lake Partners VII成功募集205亿美元&#xff08;约合人民币1480亿元&#xff09;&#xff0c;更是进一步彰显了…

Django 页面展示模型创建表的数据

1&#xff0c;添加视图函数 Test/app8/urls.py from django.shortcuts import render from .models import Userdef create_user(request):if request.method POST:username request.POST.get(username)email request.POST.get(email)# ... 获取其他字段的值# 创建用户实例…