欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > C语言:C语言实现对MySQL数据库表增删改查功能

C语言:C语言实现对MySQL数据库表增删改查功能

2025/9/18 8:36:59 来源:https://blog.csdn.net/qq_44776454/article/details/144059161  浏览:    关键词:C语言:C语言实现对MySQL数据库表增删改查功能

基础DOME可以用于学习借鉴;

具体代码

#include <stdio.h> 
#include <mysql.h> // mysql 文件,如果配置ok就可以直接包含这个文件//宏定义 连接MySQL必要参数
#define SERVER "localhost" //或 127.0.0.1
#define USER "root"
#define PASSWORD "W113416w+" //password
#define DATABASE "domedata" //your_database
int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集 MYSQL_ROW row; //记录结构体//初始化数据库 mysql_init(&mysql);if (&mysql == NULL) {//fprintf(stderr, "%s\n", mysql_error(&mysql));exit(1);}//设置字符编码mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");//连接数据库if (mysql_real_connect(&mysql, SERVER, "root",//"password", "database_name"分别填写自己的的数据库登录密码和表所在的数据库名称//这里替换成自己的的数据库等路密码和自己所建的数据库名称即可PASSWORD, DATABASE, 3306, NULL, 0) == NULL) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);printf("错误原因: %s\n", mysql_error(&mysql));printf("连接失败!\n");exit(-1);}//查询数据int ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);printf("第一次打印数据库 \n"); //打印//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 插入数据if (mysql_query(&mysql, "INSERT INTO student (id,name,age,grade,iphone) VALUES (2,'Alice', 20,92,'15555556666')")) {fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Inserted successfully.\n");// 查询数据printf("——插入数据后:——第二次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 更新数据if (mysql_query(&mysql, "UPDATE student SET grade = 99 WHERE name = 'Alice'")) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Updated successfully.\n");// 查询数据printf("——修改数据后:——第三次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 删除数据if (mysql_query(&mysql, "DELETE FROM student WHERE name = 'Alice'")) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Deleted successfully.\n");// 查询数据printf("——删除数据后:——第四次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}//释放结果集 mysql_free_result(res);//关闭数据库mysql_close(&mysql);system("pause");return 0;
}

输出结果:

ret: 0
第一次打印数据库
0 李四 21 98
1 王五 20 85
Inserted successfully.
——插入数据后:——第二次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 92
Updated successfully.
——修改数据后:——第三次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 99
Deleted successfully.
——删除数据后:——第四次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
请按任意键继续. . .

在这里插入图片描述

相关链接

  1. SQL:Windows下C/C++连接访问MySQL数据库(亲测有效!一遍过!)

版权声明:

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

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

热搜词