【C/C++学院】(22)Mysql数据库编程--C语言操作数据库

前端之家收集整理的这篇文章主要介绍了【C/C++学院】(22)Mysql数据库编程--C语言操作数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

makefile

.SUFFIXES: .c .o CC=gcc SRCS=MysqL1.c OBJS=$(SRCS:.c=.o) EXEC=MysqL1 all: $(OBJS) $(CC) -o $(EXEC) $(OBJS) -lMysqLclient @echo '-------------ok--------------' .c.o: $(CC) -Wall -g -o $@ -c $< clean: rm -f $(OBJS) rm -f core*

MysqL1.c

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <termios.h> #include <MysqL/MysqL.h> #define BUFSIZE 1024 MysqL MysqL,*connection; void deletename(char *sql) { memset(sql,BUFSIZE); sprintf(sql,"%s","请输入要干掉的名字>:"); write(STDOUT_FILENO,sql,strlen(sql)); //这句话是替换printf函数的,这样写就不需要 也能向屏幕输出了 char name[1024]; memset(name,sizeof(name)); read(STDIN_FILENO,name,sizeof(name)); //等待 用户输入要删除的名字,假定用户输入的是"饭岛爱" name[strlen(name) - 1] = 0; //将字符串最后1位 替换为0,最后放的是整数0,而不是字符'0' memset(sql,"DELETE FROM table1 WHERE name = '%s'",name); // //sql = DELETE FROM table1 WHERE name = '饭岛爱' printf("'%s' ",sql); } void insertname(char *sql) { memset(sql,"请输入要插入的名字>:"); write(STDOUT_FILENO,BUFSIZE); //这句话是替换printf函数的,这样写就不需要 也能向屏幕输出了 char name[1024]; memset(name,sizeof(name)); //等待 用户输入要插入的名字,"请输入要插入的性别>:"); write(STDOUT_FILENO,strlen(sql)); char sex[1024]; memset(sex,sizeof(sex)); read(STDIN_FILENO,sex,sizeof(sex)); //等待 用户输入要插入的性别,sex[strlen(sex) - 1] = 0; //将字符串最后1位 替换为0,"请输入要插入的年龄>:"); write(STDOUT_FILENO,strlen(sql)); char age[1024]; memset(age,sizeof(age)); read(STDIN_FILENO,age,sizeof(age)); //等待 用户输入要插入的年龄 age[strlen(age) - 1] = 0; //将字符串最后1位 替换为0,"请输入要插入的班级>:"); write(STDOUT_FILENO,strlen(sql)); char classes[1024]; memset(classes,sizeof(classes)); read(STDIN_FILENO,classes,sizeof(classes)); //等待 用户输入要插入的班级 classes[strlen(classes) - 1] = 0; //将字符串最后1位 替换为0,"INSERT INTO table1 (name,class) VALUES ('%s','%s',%s,'%s')",classes); // //sql = DELETE FROM table1 WHERE name = '饭岛爱' printf("'%s' ",sql); } void updatename(char *sql) { memset(sql,"请输入要修改的名字>:"); write(STDOUT_FILENO,"请输入要性别的性别>:"); write(STDOUT_FILENO,"请输入要年龄的年龄>:"); write(STDOUT_FILENO,"请输入要修改的班级>:"); write(STDOUT_FILENO,"UPDATE table1 SET sex = '%s',age = %s,class = '%s' WHERE name = '%s'",sql); } void selectname(const char *sql) { /* char sql[1024]; memset(sql,"请输入要查询的名字>:"); write(STDOUT_FILENO,最后放的是整数0,而不是字符'0' memset(sql,BUFSIZE); if (strlen(name) == 0) //用户没有任何输入,只是敲了回车,长度为0了 { sprintf(sql,"SELECT * FROM table2"); // } else { sprintf(sql,"SELECT * FROM table2 where name = '%s'",name); // } */ if (MysqL_query(connection,sql) != 0) { printf("query error,%s ",MysqL_error(&MysqL)); } //调用MysqL_store_result得到查询结果,结果放到MysqL_RES结构当中 MysqL_RES *result = MysqL_store_result(connection); //要知道返回数据集有多少列才能自由的使用各种SELECT语句 MysqL_FIELD *field; int iFieldCount = 0; while (1) { field = MysqL_fetch_field(result); //循环得到列名,如果循环到了列的最后,函数返回NULL if (field == NULL) break; printf("%s ",field->name); iFieldCount++; } printf(" "); //循环遍历每行 MysqL_ROW row; while (1) { row = MysqL_fetch_row(result); if (row == NULL) break; int i = 0; for (; i < iFieldCount; i++) { printf("%s ",(const char *) row[i]); } printf(" "); } MysqL_free_result(result); } int main(int arg,char *args[]) { if (arg < 4) return ⑴; MysqL_init(&MysqL); //相当于sql内部初始化了1个TCP的socket,同时初始化了sql必须的内存和1些结构 //连接到MysqL server connection = MysqL_real_connect(&MysqL,args[1],args[2],args[3],args[4],0); if (connection == NULL) { printf("connect error,MysqL_error(&MysqL)); return ⑴; } if (MysqL_query(connection,"SET NAMES utf8") != 0) //设置字符集为UTF8 { printf("设置字符集毛病,MysqL_error(&MysqL)); } char buf[BUFSIZE]; memset(buf,sizeof(buf)); strcpy(buf,"请选择 1:插入 2:删除 3:修改 4:查询 "); write(STDOUT_FILENO,buf,strlen(buf)); memset(buf,sizeof(buf)); read(STDIN_FILENO,sizeof(buf)); if (strncmp(buf,"4",1) == 0) //输入用户输入的是4 { memset(buf,sizeof(buf)); strcpy(buf,"请输入任意SELECt语句"); write(STDOUT_FILENO,strlen(buf)); memset(buf,sizeof(buf)); read(STDIN_FILENO,sizeof(buf)); selectname(buf); } else { if (strncmp(buf,"1",1) == 0) //输入用户输入的是1 { insertname(buf); } if (strncmp(buf,"2",1) == 0) //输入用户输入的是2 { deletename(buf); } if (strncmp(buf,"3",1) == 0) //输入用户输入的是3 { updatename(buf); } MysqL_query(connection,buf); } MysqL_close(connection); //断开与sql server的连接 puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ return EXIT_SUCCESS; }



猜你在找的PHP相关文章