• C语言向MySQL插入数据


    写在前面的话:

    1. 本章内容参考文章:c语言 mysql数据库添加数据icon-default.png?t=M666https://blog.csdn.net/qq_32162235/article/details/107413823?ops_request_misc=&request_id=&biz_id=102&utm_term=c%E8%AF%AD%E8%A8%80%E5%B0%86%E6%95%B0%E6%8D%AE%E5%86%99%E5%85%A5mysql%E4%B8%AD&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-107413823.142^v35^new_blog_pos_by_title&spm=1018.2226.3001.4187
    2. 本章代码可运行,能够添加到MySQL中(截图证明)
    3.  本次代码在控制台中运行(采用VS的编译器)
    1. #include
    2. #include//包含mysql头文件
    3. typedef struct Fruit
    4. {
    5. int id;
    6. char f_name[20];
    7. double f_price;
    8. char f_create_time[40];
    9. char f_update_time[40];
    10. char f_content[255];
    11. }Fruit;
    12. //初始化信息
    13. Fruit addInfomation(int id,char f_name[20],double f_price,char f_create_time[40],char f_update_time[40],char f_content[255]){
    14. Fruit fruit = {id,f_name,f_price,f_create_time,f_update_time,f_content};
    15. return fruit;
    16. }
    17. int main()
    18. {
    19. //定义句柄
    20. MYSQL mysql;
    21. //定义结构体
    22. Fruit fruit;
    23. //初始化句柄
    24. if(NULL == mysql_init(&mysql))
    25. {
    26. printf("MySQL初始化失败!\n");
    27. return -1;
    28. }
    29. //输入你的MySQL账号和密码与数据库名
    30. if(NULL == mysql_real_connect(&mysql,"localhost","root","root","_db4",0,NULL,0))
    31. {
    32. //打印错误信息
    33. printf("%s\n", mysql_error(&mysql));
    34. return -1;
    35. }
    36. printf("连接数据库成功!\n");
    37. //设置字符集
    38. mysql_set_character_set(&mysql,"utf8");
    39. //添加信息
    40. Fruit fruit = addInfomation(5,"哈密瓜",24.3,"2022-12-08 12:03:33","2022-12-08 12:03:33","非常好吃");
    41. char sql[1024];
    42. //拼接SQL语句
    43. sprintf(sql, "insert into student values(%d,'%s',%lf,'%s','%s','%s')",fruit.id,fruit.f_name,fruit.f_price,
    44. fruit.f_create_time,fruit.f_update_time,fruit.f_content);
    45. if(0 != mysql_query(&mysql,sql))
    46. {
    47. //打印信息
    48. printf("%s\n",mysql_error(&mysql));
    49. return -1;
    50. }
    51. printf("添加成功!\n");
    52. mysql_close(&mysql);
    53. return 0;
    54. }

     遇到的问题:

    mysql.c(2): fatal error C1083: 无法打开包括文件: “mysql.h”: No such file or directory

     

    解决方案:(添加进环境变量中)

    1. 首先找到mysql.h头文件:C:\Program Files\MySQL\MySQL Server 8.0\include
    2. 添加进环境变量

     

     

    注意:当然,你可能没有这个系统环境变量,你可以参考我之前写的文章

    Windows环境下在cmd中运行C++程序_星与梦想star_dream的博客-CSDN博客icon-default.png?t=M666https://blog.csdn.net/qq_56402474/article/details/125939641?spm=1001.2014.3001.5501

    再一次编译源文件,可以看到我们编译成功了! (接下来就是调试代码

     

    遇到的问题:

    mysql.obj : error LNK2019: 无法解析的外部符号 mysql_init,函数 main 中引用了该符号

     

    解决方案:

    • 刚才是将mysql.h头文件加了进来,现在要把它的源文件即mysql.c加进来
    • 跟刚才一样的操作,加进环境变量

    库文件路径:C:\Program Files\MySQL\MySQL Server 8.0\lib

     

    加进了环境变量,还有包含库文件

    #pragma comment(lib,"libmysql.lib")

    再一次编译C语言源文件(成功!

     

    运行该可执行文件

    遇到这种错误,就去我的电脑中找到改文件 (这里推荐好用的软件:Everything)

    我的文件目录:C:\Program Files\MySQL\MySQL Server 8.0\lib

     

     


    完整代码(可运行,如果要添加到自己的数据库中适当修改一下)

    1. #include
    2. #include//包含mysql头文件
    3. #pragma comment(lib,"libmysql.lib")
    4. typedef struct Fruit
    5. {
    6. int id;
    7. char f_name[20];
    8. double f_price;
    9. char f_create_time[40];
    10. char f_update_time[40];
    11. char f_content[255];
    12. }Fruit;
    13. int main()
    14. {
    15. //定义句柄
    16. MYSQL mysql;
    17. char sql[1024];
    18. //初始化句柄
    19. if(NULL == mysql_init(&mysql))
    20. {
    21. printf("MySQL初始化失败!\n");
    22. return -1;
    23. }
    24. //输入你的MySQL账号和密码与数据库名
    25. if(NULL == mysql_real_connect(&mysql,"localhost","root","root","_db4",3306,NULL,0))
    26. {
    27. //打印错误信息
    28. printf("%s\n", mysql_error(&mysql));
    29. return -1;
    30. }
    31. printf("连接数据库成功!\n");
    32. //设置字符集
    33. mysql_set_character_set(&mysql,"utf8");
    34. //添加信息
    35. Fruit fruit = {5,"apple",24.3,"2022-12-08","2022-12-08","very-good"};
    36. //拼接SQL语句
    37. sprintf(sql, "insert into fruits values(%d,'%s',%lf,'%s','%s','%s')",fruit.id,fruit.f_name,fruit.f_price,
    38. fruit.f_create_time,fruit.f_update_time,fruit.f_content);
    39. if(0 != mysql_query(&mysql,sql))
    40. {
    41. //打印信息
    42. printf("%s\n",mysql_error(&mysql));
    43. return -1;
    44. }
    45. printf("添加成功!\n");
    46. mysql_close(&mysql);
    47. return 0;
    48. }

  • 相关阅读:
    中南林业科技大学Java实验报告九:内部类和异常类
    Python 基础记录 - 第1课
    手动部署LNMP环境(Ubuntu 20)
    蓝牙资讯|苹果 AirPods Pro 2正式发布,有惊喜也有遗憾
    Arduino定时器&中断的使用和快速上手
    go-micro 安装
    FLStudio2024汉化破解版在哪可以下载?
    【浅谈网络舆情自动评判】
    分布式版本控制工具 Git 的使用方式
    [MySQL]复杂查询(进阶)
  • 原文地址:https://blog.csdn.net/qq_56402474/article/details/126043679