MySQL数据库连接查询(C++篇)

MySQL数据库连接查询(C++篇),第1张

1. 简介

MySQL是一个有服务器守护程序mysqld和许多不同客户程序及库组成的多用户,多线程的SQL数据库服务器;采用客户机/服务器结构实现,而且源代码开源,值得推荐个大家学习。

2. MySQL数据库配置

(1)MySQL的安装配置
直接帮大伙搜了一下大神的超链接,详情点击即可;https://blog.csdn.net/weixin_46196863/article/details/121488091;

(2)新建数据库和表数据
首先,直接点击当前程序进入

输入数据库密码,点击确定,进入mysql *** 作界面。

开始创建数据库MyTestDB:CREATE DATABASE MyTestDB;
验证是否成功创建数据库:SHOW DATABASES;

使用MyTestDB数据库进行表的创建: USE MyTestDB;
创建表: CREATE TABLE MyTable (ID INT, NAME VARCHAR(50));
验证表是否创建成功:show tables;

在创建的表格中插入数据:insert into myTable values(1,'myName');
验证数据书否插入成功:select * from Mytable;

到这,数据库准备这块基本搞定,下面要做的就是要整套代码连接查询了。

3. C++代码实战

(1)我使用vs2015作为开发工具,使用c++作为开发语言进行数据库的连接查询代码编写;

个人习惯,喜欢新建空项目;这个大家可以根据个人爱好选择程序类型;

(2)话不多说,为了便于描述,直接新建一个Main.cpp即可,头文件省略;

(3)配置当前项目:(根据自己mySQL的安装目录,将路径添加到对应目录即可)
右键项目–》属性–》C++目录–》包含目录:(新建目录,添加bin文件夹路径)
右键项目–》属性–》C++目录–》库目录:(新建目录,添加lib文件夹目录)


(4)将mysql.dll拷贝到当前项目程序的同级路径

(5)到此,项目的配置基本完成,直接上代码,完成数据库连接查询。

#include 
#include 
#pragma comment (lib, "libmysql.lib")

void main()
{
    MYSQL mysqlConnect;                 //数据源指针
    mysql_init(&mysqlConnect);          //分配对象 
    if (!(mysql_real_connect(&mysqlConnect, "localhost", "root", "123456", "mytestdb", 3306, NULL, 0))) 
    {
        printf("mysql数据库打开失败%s\n", mysql_error(&mysqlConnect));
    }
    printf("数据库打开成功\n");
}

(6)轻松连接数据库之后,当然就是进行简单的查询了,话不多说,直接上代码;

#include 
#include 
#pragma comment (lib, "libmysql.lib")

void main()
{
    /********************************* MySQL数据库连接 *************************************/
    MYSQL mysqlConnect;                                     //数据源指针
    mysql_init(&mysqlConnect);                              //分配对象 
    if (!(mysql_real_connect(&mysqlConnect, "localhost", "root", "123456", "mytestdb", 3306, NULL, 0))) 
    {
        printf("mysql数据库打开失败:%s\n", mysql_error(&mysqlConnect));
    }
    printf("mysql数据库打开成功\n");

    /*********************************** 执行SQL语句 ****************************************/   
    char toSelectFrom[250] = "SELECT * FROM mytable";            //where后保留空格好直接连接关键词
    if (0 != mysql_query(&mysqlConnect, toSelectFrom))
    {
        printf("SQL语句执行失败: %s\n", mysql_error(&mysqlConnect));
        mysql_close(&mysqlConnect);                         //关闭连接
    }
  
    MYSQL_RES *res;                                         //SQL语句执行结果集
    MYSQL_FIELD *field;                                     //包含字段信息的结构指针
    MYSQL_ROW nextRow;                                      //存放查询sql语句字符串数组
    res = mysql_store_result(&mysqlConnect);                //将查询结果保存
    if (!res)
    {
        printf("SQL语句执行无有结果: %s\n", mysql_error(&mysqlConnect));     
        mysql_close(&mysqlConnect);                         //关闭连接
        return;
    }

    if (mysql_field_count(&mysqlConnect) <= 0)              //字段数
    {
        printf("查询结果为空\n");
        mysql_close(&mysqlConnect);                         //关闭连接
        return;
    }


    /******************************* 打印SQL语句查询结果 *********************************/
    while (field = mysql_fetch_field(res))
    {
        printf("%20s |", field->name);
    }
    printf("\n");

    int column = mysql_num_fields(res);                     //获取查询结果的列数
    while (nextRow = mysql_fetch_row(res)) {
        for (int j = 0; j < column; j++) {
            printf("%20s |", nextRow[j]);
        }
        printf("\n");
    }

}
4. 总结

mysql数据库的连接本身不难,难点在于mysql的安装配置以及项目程序的安装配置步骤比较繁琐,造成某些步骤缺失,产生很多问题而连不上数据库。但一套 *** 作下来还是可以学到很多东西的,继续努力。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存