日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > php教程 > 【C/C++學(xué)院】(22)Mysql數(shù)據(jù)庫(kù)編程--C語(yǔ)言操作數(shù)據(jù)庫(kù)

【C/C++學(xué)院】(22)Mysql數(shù)據(jù)庫(kù)編程--C語(yǔ)言操作數(shù)據(jù)庫(kù)

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-03-23 08:00:01 閱讀次數(shù):4033次

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", "請(qǐng)輸入要干掉的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話(huà)是替換printf函數(shù)的,這樣寫(xiě)就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶(hù)輸入要?jiǎng)h除的名字,假定用戶(hù)輸入的是"飯島愛(ài)" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "DELETE FROM table1 WHERE name = '%s'", name); // //SQL = DELETE FROM table1 WHERE name = '飯島愛(ài)' printf("'%s' ", SQL); } void insertname(char *SQL) { memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要插入的名字>:"); write(STDOUT_FILENO, SQL, BUFSIZE); //這句話(huà)是替換printf函數(shù)的,這樣寫(xiě)就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶(hù)輸入要插入的名字,假定用戶(hù)輸入的是"飯島愛(ài)" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要插入的性別>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char sex[1024]; memset(sex, 0, sizeof(sex)); read(STDIN_FILENO, sex, sizeof(sex)); //等待 用戶(hù)輸入要插入的性別, sex[strlen(sex) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要插入的年齡>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char age[1024]; memset(age, 0, sizeof(age)); read(STDIN_FILENO, age, sizeof(age)); //等待 用戶(hù)輸入要插入的年齡 age[strlen(age) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要插入的班級(jí)>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char classes[1024]; memset(classes, 0, sizeof(classes)); read(STDIN_FILENO, classes, sizeof(classes)); //等待 用戶(hù)輸入要插入的班級(jí) classes[strlen(classes) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)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 = '飯島愛(ài)' printf("'%s' ", SQL); } void updatename(char *SQL) { memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要修改的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話(huà)是替換printf函數(shù)的,這樣寫(xiě)就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶(hù)輸入要插入的名字,假定用戶(hù)輸入的是"飯島愛(ài)" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要性別的性別>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char sex[1024]; memset(sex, 0, sizeof(sex)); read(STDIN_FILENO, sex, sizeof(sex)); //等待 用戶(hù)輸入要插入的性別, sex[strlen(sex) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要年齡的年齡>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char age[1024]; memset(age, 0, sizeof(age)); read(STDIN_FILENO, age, sizeof(age)); //等待 用戶(hù)輸入要插入的年齡 age[strlen(age) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要修改的班級(jí)>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); char classes[1024]; memset(classes, 0, sizeof(classes)); read(STDIN_FILENO, classes, sizeof(classes)); //等待 用戶(hù)輸入要插入的班級(jí) classes[strlen(classes) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)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 = '飯島愛(ài)' printf("'%s' ", SQL); } void selectname(const char *SQL) { /* char SQL[1024]; memset(SQL, 0, BUFSIZE); sprintf(SQL, "%s", "請(qǐng)輸入要查詢(xún)的名字>:"); write(STDOUT_FILENO, SQL, strlen(SQL)); //這句話(huà)是替換printf函數(shù)的,這樣寫(xiě)就不需要 也能向屏幕輸出了 char name[1024]; memset(name, 0, sizeof(name)); read(STDIN_FILENO, name, sizeof(name)); //等待 用戶(hù)輸入要?jiǎng)h除的名字,假定用戶(hù)輸入的是"飯島愛(ài)" name[strlen(name) - 1] = 0; //將字符串最后1位 替換為0,最后放的是整數(shù)0,而不是字符'0' memset(SQL, 0, BUFSIZE); if (strlen(name) == 0) //用戶(hù)沒(méi)有任何輸入,只是敲了回車(chē),長(zhǎng)度為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)); } //調(diào)用mysql_store_result得到查詢(xún)結(jié)果,結(jié)果放到MYSQL_RES結(jié)構(gòu)當(dāng)中 MYSQL_RES *result = mysql_store_result(connection); //要知道返回?cái)?shù)據(jù)集有多少列才能自由的使用各種SELECT語(yǔ)句 MYSQL_FIELD *field; int iFieldCount = 0; while (1) { field = mysql_fetch_field(result); //循環(huán)得到列名,如果循環(huán)到了列的最后,函數(shù)返回NULL if (field == NULL) break; printf("%s ", field->name); iFieldCount++; } printf(" "); //循環(huán)遍歷每行 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); //相當(dāng)于SQL內(nèi)部初始化了1個(gè)TCP的socket,同時(shí)初始化了SQL必須的內(nèi)存和1些結(jié)構(gòu) //連接到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) //設(shè)置字符集為UTF8 { printf("設(shè)置字符集毛病, %s ", mysql_error(&mysql)); } char buf[BUFSIZE]; memset(buf, 0, sizeof(buf)); strcpy(buf, "請(qǐng)選擇 1:插入 2:刪除 3:修改 4:查詢(xún) "); write(STDOUT_FILENO, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(STDIN_FILENO, buf, sizeof(buf)); if (strncmp(buf, "4", 1) == 0) //輸入用戶(hù)輸入的是4 { memset(buf, 0, sizeof(buf)); strcpy(buf, "請(qǐng)輸入任意SELECt語(yǔ)句"); 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) //輸入用戶(hù)輸入的是1 { insertname(buf); } if (strncmp(buf, "2", 1) == 0) //輸入用戶(hù)輸入的是2 { deletename(buf); } if (strncmp(buf, "3", 1) == 0) //輸入用戶(hù)輸入的是3 { updatename(buf); } mysql_query(connection, buf); } mysql_close(connection); //斷開(kāi)與SQL server的連接 puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ return EXIT_SUCCESS; }



生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人欧美一区二区三区黑人免费 | 五月婷婷激情综合 | 91n在线观看 | 成人免费大片黄在线播放 | 丁香六月色婷婷 | 欧美在线不卡视频 | 一区在线免费观看 | 99色综合 | 久久精品国产一区二区三区不卡 | 国产欧美日韩综合精品一区二区 | 日韩一区二区在线视频 | 爱情岛论坛首页网址 | 国产午夜精品福利 | 这里只有精品视频 | 国产一区二区三区在线看 | 国产精品成人一区二区 | 午夜视频在线免费观看 | 亚洲免费在线观看视频 | 国产精品免费一区二区三区 | 九九九九精品九九九九 | 亚洲一区二区三区中文字幕 | 精品一区久久 | 久久久亚洲综合 | 成人福利网 | 亚洲 欧洲 日韩 | 欧美精品一区二区三区蜜桃视频 | 国产成人在线播放 | 欧美成人在线免费 | 久久久久久国产精品久久 | 免费av网站在线观看 | 国产精品久久久久久网站 | 看a黄大片 | 国产 第1163页| 精品无人乱码一区二区三区 | 国产在线网站 | 波多野结衣乳巨码无在线观看 | 国产精品一区二区三区四区在线观看 | 国产精品一区二区在线看 | 久久机热 | 欧美日韩中文字幕一区二区 | 99精品视频在线观看 |