数据库操作:MFC连接与MYSQL

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操作。~有点伤心。 只能去看MYSQL手册,里面有C与MYSQL的API接口;由于MFC框架中调试比较困难,所以我现在win32控制台下实现与数据库的连接与对数据库的操作。(可能这也是原因之一,我错误的以为MFC是

mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操作。~有点伤心。
只能去看MYSQL手册,里面有C与MYSQL的API接口;由于MFC框架中调试比较困难,所以我现在win32控制台下实现与数据库的连接与对数据库的操作。(可能这也是原因之一,我错误的以为MFC是程序主体,其实MFC只是界面和消息相应,有点伤~).
首先我用的是是MYSQL5.5(建议按装32位的)
为了方便我在MYSQL中新建一个用户,并给与其相应权限
接下来我先进行了控制台上的编程:

#include"winsock.h"
#include"mysql.h"
#pragma comment(lib,"libmySQL.lib")
#include "stdio.h"
#include<string.h>

struct conn_info
{
    char *host;
    char *user;
    char *password;
    char *db;
};
MYSQL*  mysql_conn_setup(conn_info con)
{
 MYSQL *mysql = mysql_init(NULL);
 if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))
 {
  printf("Conection error : %s/n", mysql_error(mysql));  
        exit(1);  
 }
 return mysql;
}
MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)
{
    if(mysql_query(mysql,sql_Query))
    {
        printf("MySQL quer error:%s/n",mysql_error(mysql));
        exit(1);
    }
    return mysql_use_result(mysql);
}

void main()
{
    MYSQL *com;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sql_query[100];
    memset(sql_query,'\0',100);
    sprintf(sql_query,"show tables");
    struct conn_info info;
    info.host="localhost";
    info.user="lemon";
    info.password="123";
    info.db="student";
    com=mysql_conn_setup(info);
    res=mysql_conn_sqlQuery(com,sql_query);
    printf("mysql所有表:\n");
    int k=0;
    while((row=mysql_fetch_row(res))!=NULL)
    {

        printf("%s\n",row[0]);
    }
    mysql_free_result(res);
    mysql_close(com);
}


这里写图片描述
能显示出来数据库中表的张数(我去,用API就是这么快);

struct conn_info
{
    char *host;
    char *user;
    char *password;
    char *db;
};

其中结构体内保存了连接数据库所需要的信息,包括用户名,接口,密码,数据库

MYSQL*  mysql_conn_setup(conn_info con)
{
 MYSQL *mysql = mysql_init(NULL);
 if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))
 {
  printf("Conection error : %s/n", mysql_error(mysql));  
        exit(1);  
 }
 return mysql;
}

是测试是否连接上数据库;

MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)
{
    if(mysql_query(mysql,sql_Query))
    {
        printf("MySQL quer error:%s/n",mysql_error(mysql));
        exit(1);
    }
    return mysql_use_result(mysql);
}

是向数据库传入你要操作的语句,sql_Query中保存的SQL语句,mysql为主程序中申明的MYSQL指针

row=mysql_fetch_row(rew)

是抓取MYSQL返回的行数
用到mysql的部分基本上是这些,解释有点俗请见谅;
用API就是这么爽!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
|
1天前
|
SQL JSON 关系型数据库
[UE虚幻引擎插件DTPostgreSQL] PostgreSQL Connector 使用蓝图连接操作 PostgreSQL 数据库说明
本插件主要是支持在UE蓝图中连接和操作PostgreSQL 数据库。
|
5天前
|
Java 关系型数据库 数据库连接
【C 言专栏】C 语言与数据库的连接与操作
【5月更文挑战第2天】本文探讨了C语言如何连接和操作数据库,介绍了数据库连接的基本原理,如通过ODBC、JDBC或原生接口与数据库交互。文章详细阐述了使用ODBC连接的步骤,并列举了C语言在数据库操作中的常见任务,强调了错误处理、数据类型匹配和性能优化的重要性。通过实际案例,展示了在学生信息管理系统中应用C语言与数据库交互的过程。本文旨在帮助读者更好地理解和应用C语言进行数据库管理。
|
6天前
|
SQL 数据可视化 关系型数据库
【MySQL-11】多表查询全解-【多表关系/内外自连接/子查询/多表查询案例链接】(可cv代码&案例演示)
【MySQL-11】多表查询全解-【多表关系/内外自连接/子查询/多表查询案例链接】(可cv代码&案例演示)
|
6天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
7天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
7天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
7天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。