C语言连接Mysql

news/2025/1/31 14:11:48/

目录

C语言连接Mysql

mysql__4">下载 mysql 开发库

方法一:使用 apt直接下载

sudo apt-get install libmysqlclient-dev

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

dpkg -S libmysqlclient.so |grep libmysqlclient-dev

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

ls /usr/include/
# 输出如下

在这里插入图片描述

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

方法介绍

mysql_init_28">mysql_init()

初始化一个连接实例

mysql_real_connect_30">mysql_real_connect()

连接到mysql服务器

mysql_query_32">mysql_query()

执行查询命令

mysql_store_result_34">mysql_store_result()

获取查询结果

mysql_num_fields_36">mysql_num_fields()

获取字段个数

mysql_fetch_fields_38">mysql_fetch_fields()

获取字段名称列表

mysql_fetch_row_40">mysql_fetch_row()

获取每一行的数据

mysql_free_result_42">mysql_free_result()

释放结果内存

mysql_close_44">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.ppmy.cn/news/1568169.html

相关文章

【Elasticsearch】doc_values 可以用于查询操作

确实&#xff0c;doc values 可以用于查询操作&#xff0c;尽管它们的主要用途是支持排序、聚合和脚本中的字段访问。在某些情况下&#xff0c;Elasticsearch 也会利用 doc values 来执行特定类型的查询。以下是关于 doc values 在查询操作中的使用及其影响的详细解释&#xff…

深度学习笔记——正则化

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记介绍深度学习中常见的正则化。 文章目录 正则化L1 正则化&#xff08;Lasso&#xff09;原理使用场景优缺点 L2 正则化&#xff08;Ridge&#xff09;原理使用…

【论文推荐|深度学习,滑坡检测,多光谱影像,自然灾害,遥感】2022年Landslide4Sense竞赛成果:基于多源卫星影像的先进滑坡检测算法研究(五)

【论文推荐|深度学习&#xff0c;滑坡检测&#xff0c;多光谱影像&#xff0c;自然灾害&#xff0c;遥感】2022年Landslide4Sense竞赛成果&#xff1a;基于多源卫星影像的先进滑坡检测算法研究&#xff08;五&#xff09; 【论文推荐|深度学习&#xff0c;滑坡检测&#xff0c…

python3+TensorFlow 2.x(四)反向传播

目录 反向传播算法 反向传播算法基本步骤&#xff1a; 反向中的参数变化 总结 反向传播算法 反向传播算法&#xff08;Backpropagation&#xff09;是训练人工神经网络时使用的一个重要算法&#xff0c;它是通过计算梯度并优化神经网络的权重来最小化误差。反向传播算法的核…

kaggle视频追踪NFL Health Safety - Helmet Assignment

3年前的比赛了&#xff0c;检测视频中的头盔&#xff0c;通过对比赛录像的分析&#xff0c;正确指派球员。每个进攻都有两个相关的视频&#xff0c;一个是边线视角&#xff0c;另一个是端区视角&#xff0c;而且这两个视频是同步的&#xff0c;即视频中的每一帧都是对应的。我用…

DiffuEraser: 一种基于扩散模型的视频修复技术

视频修复算法结合了基于流的像素传播与基于Transformer的生成方法&#xff0c;利用光流信息和相邻帧的信息来恢复纹理和对象&#xff0c;同时通过视觉Transformer完成被遮挡区域的修复。然而&#xff0c;这些方法在处理大范围遮挡时常常会遇到模糊和时序不一致的问题&#xff0…

蓝牙技术在物联网中的应用有哪些

蓝牙技术凭借低功耗、低成本和易于部署的特性&#xff0c;在物联网领域广泛应用&#xff0c;推动了智能家居、工业、医疗、农业等多领域发展。 智能家居&#xff1a;在智能家居系统里&#xff0c;蓝牙技术连接各类设备&#xff0c;像智能门锁、智能灯泡、智能插座、智能窗帘等。…

微信阅读网站小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…