广告位联系
返回顶部
分享到

MySQL系列教程之使用C语言来连接数据库

C语言 来源:互联网 作者:佚名 发布时间:2022-09-04 22:33:13 人浏览
摘要

写在前面 知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~ 立即安排一波使用 C语言连接 MySQL数据库的教程~ 一、准备工作 1.1 把 libmysql.dll

写在前面

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

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

一、准备工作

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

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

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

1.2 添加 libmysql.lib 

1.3 添加 include目录

我的这个路径是:C:\Program Files\MySQL\MySQL Server 5.7\include 

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

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

1.4 包含头文件

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

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

1.5 其他准备工作

1.5.1 代码准备

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

#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("test\n");

  

    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));

        //输出错误信息

    }

}

1.5.2 创建数据库连接

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

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

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

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

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

 二、代码测试案例

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

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

2.1 向数据库插入数据

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

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

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

2.2 向数据库删除数据

2.3 修改数据

没修改之前:

修改之后:

2.4 查询数据,打印出来

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

/*

    //向数据库插入数据

    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("id\tname\tsex\n");

    while (row = mysql_fetch_row(res))

    {

        printf("%s\t%s\t%s\n", row[0], row[1], row[2]);

    }

    //释放资源

    mysql_free_result(res);//释放结果集

    mysql_close(&m);//关闭数据库

}

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/qq_53362595/article/details/126425815
相关文章
  • C++中类的六大默认成员函数的介绍

    C++中类的六大默认成员函数的介绍
    一、类的默认成员函数 二、构造函数Date(形参列表) 构造函数主要完成初始化对象,相当于C语言阶段写的Init函数。 默认构造函数:无参的构
  • C/C++实现遍历文件夹最全方法总结介绍

    C/C++实现遍历文件夹最全方法总结介绍
    一、filesystem(推荐) 在c++17中,引入了文件系统,使用起来非常方便 在VS中,可以直接在项目属性中调整: 只要是C++17即以上都可 然后头文件
  • C语言实现手写Map(数组+链表+红黑树)的代码

    C语言实现手写Map(数组+链表+红黑树)的代码
    要求 需要准备数组集合(List) 数据结构 需要准备单向链表(Linked) 数据结构 需要准备红黑树(Rbtree)数据结构 需要准备红黑树和链表适配策略
  • MySQL系列教程之使用C语言来连接数据库

    MySQL系列教程之使用C语言来连接数据库
    写在前面 知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~ 立即安排一波使用 C语言连接 MySQL数
  • 基于C语言实现简单学生成绩管理系统

    基于C语言实现简单学生成绩管理系统
    一、系统主要功能 1、密码登录 2、输入数据 3、查询成绩 4、修改成绩 5、输出所有学生成绩 6、退出系统 二、代码实现 1 2 3 4 5 6 7 8 9 10 11
  • C语言实现共享单车管理系统

    C语言实现共享单车管理系统
    1.功能模块图; 2.各个模块详细的功能描述。 1.登陆:登陆分为用户登陆,管理员登陆以及维修员登录,登陆后不同的用户所执行的操作
  • C++继承与菱形继承的介绍

    C++继承与菱形继承的介绍
    继承的概念和定义 继承机制是面向对象程序设计的一种实现代码复用的重要手段,它允许程序员在保持原有类特性的基础上进行拓展,增加
  • C/C++指针介绍与使用介绍

    C/C++指针介绍与使用介绍
    什么是指针 C/C++语言拥有在程序运行时获得变量的地址和操作地址的能力,这种用来操作地址的特殊类型变量被称作指针。 翻译翻译什么
  • C++进程的创建和进程ID标识介绍
    进程的ID 进程的ID,可称为PID。它是进程的唯一标识,类似于我们的身份证号是唯一标识,因为名字可能会和其他人相同,生日可能会与其他
  • C++分析如何用虚析构与纯虚析构处理内存泄漏

    C++分析如何用虚析构与纯虚析构处理内存泄漏
    一、问题引入 使用多态时,如果有一些子类的成员开辟在堆区,那么在父类执行完毕释放后,没有办法去释放子类的内存,这样会导致内存
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计