C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

06-20 1661阅读

  C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】博客主页:花果山~程序猿-CSDN博客C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

目录

一.配置开发环境 

二,接口介绍

1. mysql_init

2.mysql_real_connect

3. mysql_query

4.对select结果分析

1),mysql_store_result

2)像mysql一样查看mysql数据

提取数据

提取属性名 

三,图形化界面方式连接MYSQL


嗨!收到一张超美的图,愿你每天都能顺心!

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

一.配置开发环境 

我们是要使用C/C++语言在代码层面对MySQL进行连接操作,我们就需要其头文件 + 源码库,按照我们之前学的关于如何使用第三方库,可以参考本博客:

(使用第三库操作详解【Linux】【软硬链接 | 动,静态库 | 使用第三库】_linux下stderr的头文件-CSDN博客

但以目前我们学到这里,这种步骤成功性还是无法保证(因为我们可以通过安装mysql,会自动代入我们需要的环境)。

因此首先我们是安装mysql软件,可以参考本篇博客:

centos7.6安装mysql-CSDN博客

下载完成后,我们通过下面指令来查看是否有devel(开发库)

rpm -qa | grep mysql

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

如果devel有,那么我们就可以直接正常编程了,编译的时候指定一下源码库即可,如:

-L/lib64/mysql   -lmysqlclient;

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

 如果没有devel,那么我们需要安装一个开发库,通过下面代码:

yum install -y mysql-community-devel

如果无法安装devel(开发库),还可以到官网下载开发包,再上传到Linux,但是不推荐怎么做,因为可能会因为开发包和自己MySQL的版本不同而出现各种奇奇怪怪的问题:如ssl证书问题,套接字问题……

下面我们可以手动查一下是否有,头文件 + 源码库

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

二,接口介绍

 这里就只提一些C语言常用接口,有需要的可以直接找文档,MySQL :: MySQL 5.7 C API Developer Guide :: 4 C API Function Reference

1. mysql_init

信息:mysql_init函数是用于初始化一个MYSQL结构体的,这个结构体用来存储连接MySQL服务器所需的信息以及连接后的状态信息。

MYSQL *mysql_init(MYSQL *mysql); // 如果第一次初始,设置为nullptr即可

返回值:成功时,返回指向初始化后的MYSQL结构体的指针。如果分配新对象时失败,则返回NULL

2.mysql_real_connect

与mysql服务端建立连接(首先我们要有mysqld的账号)。 如果通过我们写的程序来连接服务端,那我们就成了客户端了,我觉得没这个必要,我们想通过程序来进行,简化对mysql命令的操作,实现自动化提高效率。

MYSQL*  mysql_real_connect(MYSQL *mysql,      //初始化好的mysql*结构体
                   const char *host,  // 登录主机
                   const char *user,   // 用户
                   const char *passwd, // 密码
                   const char *db,     // 默认进入的库名, 可以为nullptr
                   unsigned int port,  // 服务器端口号
                   const char *unix_socket, // 套接字种类,一般是域间套接字,可以默认为nullptr
                   unsigned long client_flag) // 默认为0

返回值:成功时,返回mysql,填入的初始化结构体指针;失败,返回nullptr;

关于C连接mysql编码集的问题:

我们知道已经设置了服务器的默认编码集:utf8,但C连接mysql的编码集默认是latin1,不支持中文,因此我们需要修改默认编码集。

int  mysql_set_character_set(MYSQL *mysql,  const char *csname)  // csname 可为 "utf8"

3. mysql_query

在我们在mysql中创建表后,我们就可以通过mysql_query来向mysql发送mysql指令

int  mysql_query(MYSQL *mysql, 
                 const char *stmt_str)  --mysql语句

 返回值:成功,返回0;失败,返回其他值

最简单的就是增删改,案例如下:

C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

    mysql_set_character_set(my_sql, "utf8");
    std::string query = "insert  people values('张三', '12345', 1), ('李四', '520', 2)";
    // query = "delete from people where name = '张三';
    // query = 'update people set phone='1314' where id=2'
    if (mysql_query(my_sql, query.c_str()))
    {
        std::cout 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]