#include

#include

#include

#include

#include

#include

#define DBHOST "localhost"

#define DBUSER "root"

#define DBPASS "***" //输入数据库密码

#define DBPORT 3306

#define DBNAME "test"

#define DBSOCK NULL //"/var/lib/mysql/mysql.sock"

#define DBPCNT 0

MYSQL_RES *result;

MYSQL_ROW row;

MYSQL_FIELD *field;

MYSQL *mysql,*a;

void menu() //显示界面

{

printf("1.返回数据\n");

printf("2.插入数据\n");

printf("3.删除数据\n");

printf("4.退出系统\n");

printf("5.显示主界面\n");

}

void loop(MYSQL *p)

{

int flag=1;

menu();

while(flag)

{

printf("请输入功能标号***\n");

scanf("%d",&flag);

printf("flag=%d\n",flag);

switch(flag){

case 1:{get_data(p);break;}

case 2:{insert(p);printf("insert done!\n");break;}

case 3:{delete(p);printf("delete done!\n");break;}

//case 4:{quit(p);}

case 5:{menu();break;}

default:{break;}

}

if(flag==4)

{

quit();

break;

}

else

continue;

}

}

int insert(MYSQL *p)//向数据库中插入数据

{

init_connect(p);

int no,age;

char name[20];

printf("插入数据 no,name,age请用换行符分隔\n");

scanf("%d\n%s\n%d",&no,name,&age);

char *sqls="insert into children values(%d,'%s',%d)";

char sqlsbuf[500];

sprintf(sqlsbuf,sqls,no,name,age);

if(0!=mysql_real_query(p,sqlsbuf,strlen(sqlsbuf)))

{

printf("insert query failed: %s\n", mysql_error(p));

mysql_close(p);

mysql_library_end();

return 0;

}

return 0;

}

int delete(MYSQL *p)//删除数据库中的一行数据

{

init_connect(p);

char name[20];

printf("删除数据delet one row data,请输入要删除的名字name:\n");

scanf("%s",name);

char *sqls="delete from children where fname='%s'";

char sqlsbuf[500];

sprintf(sqlsbuf,sqls,name);

if(0!=mysql_real_query(p,sqlsbuf,strlen(sqlsbuf)))

{

printf("delete query failed: %s\n", mysql_error(p));

mysql_close(p);

mysql_library_end();

return 0;

}

return 0;

}

int get_data(MYSQL *p)

{

const char *pStatement = "select * from children";

if(0!=mysql_real_query(p,pStatement,strlen(pStatement)))

{

printf("delete query failed: %s\n", mysql_error(p));

mysql_close(p);

mysql_library_end();

return 0;

}

unsigned int num_fields;

unsigned int i;

result = mysql_store_result(p);

if (result == NULL)

{

printf("fetch result failed: %s\n", mysql_error(p));

mysql_close(p);

mysql_library_end();

return 0;

}

num_fields = mysql_num_fields(result);

printf("numbers of result: %d\n", num_fields);

while (NULL != (field = mysql_fetch_field(result)))

{

printf("field name: %s\n", field->name);

}

while (NULL != (row = mysql_fetch_row(result)))

{

unsigned long *lengths;

lengths = mysql_fetch_lengths(result);

for (i = 0; i < num_fields; i++)

{

printf("{%.*s} ", (int) lengths[i], row[i] ? row[i] : "NULL");

}

printf("\n");

}

return 0;

}

int init_connect()

{

mysql=mysql_init(NULL);

mysql_library_init(0, NULL, NULL);

printf("执行数据库初始化\n");

unsigned int timeout = 3000;

mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, &timeout);

if (mysql_real_connect(mysql, DBHOST, DBUSER, DBPASS, DBNAME, DBPORT, DBSOCK, DBPCNT) == NULL)

{

printf("connect failed: %s\n", mysql_error(mysql));

mysql_close(mysql);

mysql_library_end();

return 0;

}

printf("connect succssfully\n");

return 0;

}

int quit()

{

mysql_free_result(result);

mysql_close(mysql);

mysql_library_end();

printf("-----END-----\n");

}

int main()

{

init_connect();

loop(mysql);

return 0;

}

linux mysql c语言 api_linux连接MySQL数据库(C语言 API 分析,动态插入修改数据)相关推荐

  1. R语言之连接mysql数据库

    学习笔记 PS:写这个Blog的初衷是,心血来潮考古自己的Blog,看到3年前写的同一主题Blog,差点气到吐血,就重新写一遍了,顺便加一点R语言读取数据的其他方式. R语言之连接mysql数据库 从 ...

  2. C语言之连接Mysql数据篇

    C语言之连接Mysql数据篇 效果图 难度 : ⭐⭐⭐⭐(全星5颗星的情况下) https://downloads.mysql.com/archives/c-c/ 先去那个网站下载个文件 7MB左右 ...

  3. idea测试连接mysql报错08001_IDEA连接MySQL(版本8)数据库失败的解决方法(报错08001)...

    在IDEA自带的数据库连接工具中,可以连接MySQL数据库,但是有的时候连接出现08001错误,连接不上数据库. 1.一般配置如下所示 Database处填写数据库名字:User处填写mysql设置好 ...

  4. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)

    本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...

  5. macOS安装MySQL,使用Navicat连接MySQL数据库/2022

    macOS安装MySQL,使用Navicat连接MySQL数据库/2022 intel chip 下载安装文件 进入官网 MySQL :: MySQL Downloads 选择页尾MySQL Comm ...

  6. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

    一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...

  7. php设置mysql查询编码,php连接mysql时怎么设置编码方式

    php连接mysql时怎么设置编码方式 php连接mysql数据库时,也就是在mysql_connect()语句之后添加"mysql_query("set names utf8&q ...

  8. php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法

    PHP连接mysql出现乱码的原因与解决方法 解决MySql数据库乱码的一个首要前提是保证 数据库+数据表+前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf ...

  9. java8 access_Java语言8 连接Access数据库UCanAccess的操作介绍

    本文主要向大家介绍了Java语言8 连接Access数据库UCanAccess的操作介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java8 中JDK1.8中不再包含acces ...

最新文章

  1. 如何获取mongodb中的最后N条记录?
  2. 通过HTTP抓包,深入理解ASP.NET WebForm ViewState
  3. 针对不同的Cookie做页面缓存
  4. wpf加载obj格式的3D模型图解
  5. uestc 250 windy数(数位dp)
  6. java mysql开发_Java数据库开发
  7. 三星s7不能运行java_在调试模式下启动时Android应用程序崩溃
  8. JS使用setInterval定时器导致前端页面卡死
  9. 最全面的PS快捷键使用指南
  10. Ubuntu20.04 libcef笔记
  11. dp题目总结(1)——基础
  12. 机房动力环境监测系统
  13. 阿里云DRDS分布式数据库 - 分库分表
  14. NVIDIA发布移动超级计算机“Jetson TK1”性能超树莓派
  15. Android智能硬件开发心得总结(二)
  16. 环游西游看项目管理(附上项目管理工具)
  17. php文本框添加表情,仿微信在对话框文字中插入Emoji表情包
  18. Groovy探索之MOP 十五 方法名的动态性(2)
  19. xshell用无线网远程连接linux失败_vnc远程控制软件怎么用,3个步骤教你vnc远程控制软件怎么用...
  20. KubeSphere——KubeSphere集群构建实战

热门文章

  1. windows系统下,双网卡电脑更改默认路由的命令-转
  2. kaggle房价预测特征意思_Kaggle竞赛丨房价预测(House Prices)
  3. python的认识从唯物主义_你对唯物主义的看法是怎么样的?
  4. C#中获取路径的几种方法
  5. CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五)
  6. 日程管理 FullCalendar
  7. Ugly Number leetcode java
  8. PKM2数据导出的xml显示用的XSL
  9. 快速读取内存文件-内存映射文件的方法
  10. LINQ语法类似于SQL的语法