多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【C/C++學院】(22)Mysql數據庫編程--C語言操作數據庫

【C/C++學院】(22)Mysql數據庫編程--C語言操作數據庫

來源:程序員人生   發布時間:2015-03-23 08:00:01 閱讀次數:4029次

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, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要干掉的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話是替換printf函數的,這樣寫就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶輸入要刪除的名字,假定用戶輸入的是"飯島愛" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "DELETE FROM table1 WHERE name = '%s'", name); // //SQL = DELETE FROM table1 WHERE name = '飯島愛' printf("'%s' ", SQL); } void insertname(char *SQL) { memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要插入的名字>:"); write(STDOUT_FILENO, SQL, BUFSIZE); //這句話是替換printf函數的,這樣寫就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶輸入要插入的名字,假定用戶輸入的是"飯島愛" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要插入的性別>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char sex[1024]; memset(sex, 0, sizeof(sex)); read(STDIN_FILENO, sex, sizeof(sex)); //等待 用戶輸入要插入的性別, sex[strlen(sex) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要插入的年齡>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char age[1024]; memset(age, 0, sizeof(age)); read(STDIN_FILENO, age, sizeof(age)); //等待 用戶輸入要插入的年齡 age[strlen(age) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要插入的班級>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char classes[1024]; memset(classes, 0, sizeof(classes)); read(STDIN_FILENO, classes, sizeof(classes)); //等待 用戶輸入要插入的班級 classes[strlen(classes) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "INSERT INTO table1 (name, sex, age, class) VALUES ('%s', '%s', %s, '%s')", name, sex, age, classes); // //SQL = DELETE FROM table1 WHERE name = '飯島愛' printf("'%s' ", SQL); } void updatename(char *SQL) { memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要修改的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話是替換printf函數的,這樣寫就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶輸入要插入的名字,假定用戶輸入的是"飯島愛" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要性別的性別>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char sex[1024]; memset(sex, 0, sizeof(sex)); read(STDIN_FILENO, sex, sizeof(sex)); //等待 用戶輸入要插入的性別, sex[strlen(sex) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要年齡的年齡>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char age[1024]; memset(age, 0, sizeof(age)); read(STDIN_FILENO, age, sizeof(age)); //等待 用戶輸入要插入的年齡 age[strlen(age) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要修改的班級>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char classes[1024]; memset(classes, 0, sizeof(classes)); read(STDIN_FILENO, classes, sizeof(classes)); //等待 用戶輸入要插入的班級 classes[strlen(classes) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "UPDATE table1 SET sex = '%s', age = %s, class = '%s' WHERE name = '%s'", sex, age, classes, name); // //SQL = DELETE FROM table1 WHERE name = '飯島愛' printf("'%s' ", SQL); } void selectname(const char *SQL) { /* char SQL[1024]; memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請輸入要查詢的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話是替換printf函數的,這樣寫就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶輸入要刪除的名字,假定用戶輸入的是"飯島愛" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數0,而不是字符'0' memset(SQL, 0, 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, 0, 0); if (connection == NULL) { printf("connect error, %s ", mysql_error(&mysql)); return ⑴; } if (mysql_query(connection, "SET NAMES utf8") != 0) //設置字符集為UTF8 { printf("設置字符集毛病, %s ", mysql_error(&mysql)); } char buf[BUFSIZE]; memset(buf, 0, sizeof(buf)); strcpy(buf, "請選擇 1:插入 2:刪除 3:修改 4:查詢 "); write(STDOUT_FILENO, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(STDIN_FILENO, buf, sizeof(buf)); if (strncmp(buf, "4", 1) == 0) //輸入用戶輸入的是4 { memset(buf, 0, sizeof(buf)); strcpy(buf, "請輸入任意SELECt語句"); write(STDOUT_FILENO, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(STDIN_FILENO, buf, 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; }



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久88香港三级台湾三级中文 | 欧美国产一区二区三区 | 免费在线观看黄色的网站 | 国产成视频 | 国产成人精品三区 | 欧美日韩性视频一区二区三区 | 亚洲一区成人 | 欧美色伊人 | 亚洲最大成人在线 | 最近中文字幕高清字幕 | 欧美freesex8一10| 精品国产欧美一区二区 | 亚洲性另类 | 91福利国产在线观看香蕉 | 国产精品第一页第一页 | 国产精品毛片无码 | 福利久草 | 国产片免费看 | 久久久久国产精品免费 | 亚洲精品在线视频 | 亚洲精品毛片久久久久久久 | 精品免费国产一区二区三区 | 一本大道加勒比久久 | 成年人视频网站免费 | 日本www在线播放 | 日本aaaaa特黄毛片 | 国产欧美曰韩一区二区三区 | 欧美成视频在线观看 | 欧美片第一页 | 国产成人精品第一区二区 | 欧洲妇女成人淫片aaa视频 | 亚洲欧美日韩中文综合v日本 | 亚洲综合首页 | 国产欧美在线观看不卡一 | 最近免费字幕中文大全视频 | 2021年中文字幕视频 | 亚洲高清不卡视频 | 亚洲一区二区精品视频 | 久久亚洲精品一区成人 | 无码中文av有码中文av | 在线免费观看福利 |