当前位置: 首页 > news >正文

C语言连接Mysql

目录

  • C语言连接Mysql
    • 下载 mysql 开发库
  • 方法介绍
    • mysql_init()
    • mysql_real_connect()
    • mysql_query()
    • mysql_store_result()
    • mysql_num_fields()
    • mysql_fetch_fields()
    • mysql_fetch_row()
    • mysql_free_result()
    • mysql_close()
  • 完整代码

C语言连接Mysql

下载 mysql 开发库

方法一:使用 apt直接下载

sudo apt-get install libmysqlclient-dev

下载完后,可以查看库文件位置

dpkg -S libmysqlclient.so |grep libmysqlclient-dev

头文件是在默认头文件位置

ls /usr/include/
# 输出如下

在这里插入图片描述

方法二:也可以自己手动去官网下载: 库下载
安装过程略,可以参考使用apt索引包下载

方法介绍

mysql_init()

初始化一个连接实例

mysql_real_connect()

连接到mysql服务器

mysql_query()

执行查询命令

mysql_store_result()

获取查询结果

mysql_num_fields()

获取字段个数

mysql_fetch_fields()

获取字段名称列表

mysql_fetch_row()

获取每一行的数据

mysql_free_result()

释放结果内存

mysql_close()

关闭 mysql 连接

完整代码

#include <mysql/mysql.h>
#include <stdio.h>int main() {MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;const char *server = "localhost"; // 数据库服务器地址const char *user = "root"; // 数据库用户名const char *password = "baseword"; // 数据库密码const char *database = "base001"; // 数据库名conn = mysql_init(NULL);if (conn == NULL) {fprintf(stderr, "mysql_init() failed\n");return 1;}// 连接到MySQL服务器if (mysql_real_connect(conn, server, user, password, database, 0, NULL, 0) == NULL) {fprintf(stderr, "mysql_real_connect() failed\n");mysql_close(conn);return 1;}// 执行SQL查询if (mysql_query(conn, "SELECT * FROM users")) {fprintf(stderr, "mysql_query() failed\n");mysql_close(conn);return 1;}// 获取查询结果res = mysql_store_result(conn);if (res == NULL) {fprintf(stderr, "mysql_store_result() failed\n");mysql_close(conn);return 1;}printf("Table: your_table\n");//打印列名int fieldnum = mysql_num_fields(res);MYSQL_FIELD *field = mysql_fetch_fields(res);for (int i = 0; i < fieldnum; i++){printf("%s\t",field[i].name);}printf("\n");// 输出结果集的每一行数据while ((row = mysql_fetch_row(res)) != NULL) {//printf("%s %s %s", row[0],row[1]); // 假设第一列是我们要打印的列,根据实际情况调整索引for (int i = 0; i < mysql_num_fields(res); i++) {// row[i] 指向当前列的数据,如果数据为 NULL,则 row[i] 也为 NULLprintf("%s\t", row[i] ? row[i] : "NULL");}printf("\n"); // 打印完一行后换行}mysql_free_result(res); // 释放结果集内存mysql_close(conn); // 关闭数据库连接return 0;
}
http://www.lryc.cn/news/528432.html

相关文章:

  • Windows上通过Git Bash激活Anaconda
  • 面试经典150题——图
  • 学习数据结构(1)时间复杂度
  • 项目集成GateWay
  • 【Ubuntu】使用远程桌面协议(RDP)在Windows上远程连接Ubuntu
  • python3+TensorFlow 2.x 基础学习(一)
  • 《活出人生的厚度》
  • 安装 docker 详解
  • 【Rust自学】16.3. 共享状态的并发
  • 开发者交流平台项目部署到阿里云服务器教程
  • 【2024年华为OD机试】 (B卷,100分)- 乘坐保密电梯(JavaScriptJava PythonC/C++)
  • maven的打包插件如何使用
  • solidity高阶 -- 线性继承
  • 国内外大语言模型领域发展现状与预期
  • 【Leetcode 热题 100】416. 分割等和子集
  • C语言------数组从入门到精通
  • 物管系统赋能智慧物业管理提升服务质量与工作效率的新风潮
  • 2024年记 | 凛冬将至
  • MySQL数据导入与导出
  • NoSQL与SQL比较
  • Ceph:关于Ceph 中使用 RADOS 块设备提供块存储的一些笔记整理(12)
  • Android SystemUI——最近任务列表启动(十八)
  • 数据结构课程设计(三)构建决策树
  • 从ChatGPT热潮看智算崛起
  • 基于PyQt设计的智能停车管理系统
  • http的请求体各项解析
  • 【linux】Linux 常见目录特性、权限和功能
  • 创作三载·福启新章2025
  • RoboMaster- RDK X5能量机关实现案例(一)识别
  • Python帝王學集成-母稿