欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > C语言连接数据库

C语言连接数据库

2025/9/20 22:43:43 来源:https://blog.csdn.net/qq_73435980/article/details/144284261  浏览:    关键词:C语言连接数据库

文章目录

  • 一、初始化数据库
  • 二、创建数据库连接
  • 三、执行增删改查语句
    • 1、增删改
    • 2、查
  • 四、执行增删改查语句

接下来我简单的介绍一下怎么用C语言连接数据库。

  1. 初始化数据库
  2. 创建数据库连接
  3. 执行增删改查语句
  4. 关闭数据库连接

一、初始化数据库

image-20241206094837682

// 数据库初始化
MYSQL mysql;
MYSQL* ret1 = mysql_init(&mysql);
if (ret1 == nullptr)
{std::cerr << "init_error" << std::endl;exit(-1);
}/*****************
返回值:如果没有足够的内存来分配新对象,则为空。
*****************/

二、创建数据库连接

image-20241206095514654

// 数据库连接
MYSQL* ret2 = mysql_real_connect(&mysql, host.c_str(), user.c_str(), passwd.c_str(), db.c_str(), port, nullptr, 0);
if (ret2 == nullptr)
{std::cerr << "connect_error" << std::endl;exit(-1);
}/*****************
参数:1、MYSQL *mysql       ===> 创建的数据库变量2、const char *host   ===> 主机号, 如果是本地可以用"127.0.0.1"3、const char *user   ===> 用户名4、const char *passwd ===> 密码5、const char *db     ===> 数据库名6、unsigned int port  ===> 端口号7、剩下的两个参数一个置空,一个置0就行
返回值:如果没有足够的内存来分配新对象,则为空。
*****************/

三、执行增删改查语句

这个部分需要分成两类:增删改、查。增删改只需要考虑这个语句执行的是否是正常的,但是查询这个操作还需要通过返回值得到查询的结果。

image-20241206100942877

1、增删改

// 执行增删改
std::string sql = "insert into user (name, age) values ('wangwu', 19);";
int ret3 = mysql_query(&mysql, sql.c_str());
if (ret3)
{std::cerr << "query_error" << std::endl;exit(-1);
}

2、查

  1. 执行查询语句
  2. 得到结果集
  3. 得到结果集的行数和列数
  4. 遍历即可

image-20241206101839021

// 执行查找语句
std::string sql = "select * from  user;";
int ret4 = mysql_query(&mysql, sql.c_str());
if (ret4)
{std::cerr << "query_error" << std::endl;exit(-1);
}
// 得到结果集
MYSQL_RES* res = mysql_store_result(&mysql);// 得到行数和列数
int row = mysql_num_rows(res);
int field = mysql_num_fields(res);// 得到列名
MYSQL_FIELD* fields = mysql_fetch_fields(res);
for (int i = 0; i < row; i++)
{// 注意,不能直接打印,需要指定里面的name属性std::cout << fields[i].name << " ";
}
std::cout << "\n";// 遍历得到结果集
MYSQL_ROW line;
for (int i = 0; i < row; i++)
{line = mysql_fetch_row(res);for (int j = 0; j < field; j++){std::cout << line[j] << " ";}std::cout << "\n";
}

四、执行增删改查语句

image-20241206100632686

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

cout << “\n”;
}


# 四、执行增删改查语句[外链图片转存中...(img-9HkkinoN-1733452583128)]```cpp
// 关闭数据库
mysql_close(&mysql);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词