当前位置:首页>学习笔记>数据库开发>【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

写在前面

有铁铁私信说 知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~

立即安排一波使用 C语言连接 MySQL数据库的教程~


一、准备工作

1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下

首先,我们要找到刚刚开始下载的 MySQL数据库 的安装目录,打开目录,并且将 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下~

我安装MySQL的路径:C:Program FilesMySQLMySQL Server 5.7lib

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

1.2 添加 libmysql.lib

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库 【MySQL系列】使用C语言来连接数据库

1.3 添加 include目录

我的这个路径是:C:Program FilesMySQLMySQL Server 5.7include 

【MySQL系列】使用C语言来连接数据库

来到 VS2019 页面,和上述操作一样~

右键MySQL工程,选择属性 右键,选择 C/C++,选择常规,选择 附加包含目录,同时进行编辑,将刚刚复制的 include路径 给粘贴上去~

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库 【MySQL系列】使用C语言来连接数据库

1.4 包含头文件

接下来 在VS2019里面,先后敲出代码:

#include <WinSock.h> 和 #include <mysql.h> ,需要注意的是,两行代码的顺序不可以改变~

【MySQL系列】使用C语言来连接数据库 【MySQL系列】使用C语言来连接数据库

1.5 其他准备工作

1.5.1 代码准备

#include <iostream>
using namespace std;
#include <WinSock.h>
#include <mysql.h>


void test();

int main()
{
	cout << "main" << endl;

	test();
	getchar();
	return 0;
}

void test() 
{
	printf("testn");

	MYSQL m;        //mysql连接
	MYSQL_RES* res; //查询结果集
	MYSQL_ROW row;  //二维数组,存放数据

	//初始化数据库
	mysql_init(&m);

	//设置编码方式
	mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库
	if (mysql_real_connect(&m, "localhost", "root", "111111", "c",      3306, NULL, 0))
	{                           //主机       用户名   密码      数据库名  端口
		printf("数据库连接成功n");
	}
	else {
		printf("数据库连接失败:%s n", mysql_error(&m));
		//输出错误信息
	}

}

【MySQL系列】使用C语言来连接数据库

1.5.2 创建数据库连接

第一步,Win+R,输入 cmd~

【MySQL系列】使用C语言来连接数据库

第二步,输入 musql -uroot -p,回车后,输入一开始安装MySQL数据库是设置的密码,之后回车进入数据库~

【MySQL系列】使用C语言来连接数据库

第三步,开始创建一个新的数据库,并且开始建表之类的操作~

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

1.6 选择相应方案配置 Release,解决方案平台 x64

【MySQL系列】使用C语言来连接数据库

最终,来运行一下代码,发现已经成功了~

【MySQL系列】使用C语言来连接数据库 【MySQL系列】使用C语言来连接数据库

二、代码测试案例

在经过上述的一系列操作之后,已经可以连接上 MySQL数据库中了~

接下来我们就可以来做一些测试案例~

2.1 向数据库插入数据

此时,再插入数据之前,我们可以来看一看 上面新建的 student表 是没有任何数据的~

【MySQL系列】使用C语言来连接数据库

但是,在加入 插入数据的代码之后,运行一下,我们就会发现 多出来一条数据~

【MySQL系列】使用C语言来连接数据库

 当然,改成插入多条数据也是可以的啦~

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

2.2 向数据库删除数据

 【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

2.3 修改数据

没修改之前:

【MySQL系列】使用C语言来连接数据库

修改之后:

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

2.4 查询数据,打印出来

【MySQL系列】使用C语言来连接数据库

【MySQL系列】使用C语言来连接数据库

三、使用C语言连接MySQL数据库 的测试案例代码


/*
 	//向数据库插入数据
	const char* sql = "insert into student values(2,'李四','女'),(3,'王五','男'),"
		"(4, '赵六', '女')";
	if (mysql_query(&m, sql))
	{
		printf("插入数据失败:%s n", mysql_error(&m));
	}
	else
	{
		printf("插入数据成功n");
	}


	//向数据库删除数据
	const char* sql_2 = "delete from student where name = '赵六'";
	if (mysql_query(&m, sql_2))
	{
		printf("删除数据失败:%s n", mysql_error(&m));
	}
	else
	{
		printf("删除数据成功n");
	}


	//向数据库修改数据
	const char* sql_3 = "update student set id = 5 where name = '李四'";
	if (mysql_query(&m, sql_3))
	{
		printf("修改数据失败:%s n", mysql_error(&m));
	}
	else
	{
		printf("修改数据成功n");
	}
*/

	//需要注意的是,在下面的设置中,所查询到的数据 与打印出来的数据要相互匹配,
	//不然就会出现乱码的
	//查询数据
	const char* sql_4 = "select id,sex,name from student where name = '张三'";
	if (mysql_query(&m, sql_4)) 
	{
		printf("未查到记录:%s n", mysql_error(&m));
	}
	else
	{
		printf("查询成功 n");
	}
	//获取查询结果集
	res = mysql_store_result(&m);
	if (res)
	{
		printf("获取到数据n");
	}
	else
	{
		printf("未获取到数据:%s n", mysql_error(&m));
	}
	//打印获取到的数据
	printf("idtnametsexn");
	while (row = mysql_fetch_row(res)) 
	{
		printf("%st%st%sn", row[0], row[1], row[2]);
	}
	//释放资源
	mysql_free_result(res);//释放结果集
	mysql_close(&m);//关闭数据库
}

【MySQL系列】使用C语言来连接数据库

使用 C语言 连接 MySQL数据库,正好可以和 Java 连接 MySQL数据库 相互映衬~

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
数据库开发

单独批量删除数据库某个数据库表中所有数据方法教程

2023-6-4 10:55:54

数据库开发

【Mysql教程】什么是Mysql?

2023-6-5 22:37:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索