日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

C语言操作MySQL-----又一个小技巧

發布時間:2025/3/19 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言操作MySQL-----又一个小技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言操作MySQL

  • 連接MySQL
  • 常用數據庫操作函數
  • 查詢操作
    • 1、`mysql_query()`函數
  • 插入操作
  • 修改操作
  • 刪除操作

在開始之前需要進行環境的配置,請參考這篇博客:
VS2019配置MySQL環境

連接MySQL

需要用到函數:mysql_real_connect()
其語法格式如下:

MYSQL* mysql_real_connect(MYSQL* connect,//已經初始化的連接句柄結構const char* server_host, //可以是主機名,也可以是IP地址,如果是主機可以用(localhost)const char* sql_user_name,//MySQL的數據庫的用戶名,默認是rootconst char* sql_password, //root賬戶的密碼,默認情況下沒有密碼,即NULLconst char* db_name,//要連接的數據庫,如果為空,則連接到默認的數據庫test中unsigned int port_number,//數據庫的端口,經常設置為0,也可以是3306const char* unix_socket_name,//經常設置為NULLunsigned int flags //經常設置為0 );

例子:

//初始化mysqlmysql_init(&mysql); //連接mysql,數據庫if (!(mysql_real_connect(&mysql, "127.0.0.1", "root", "123", "test", 0, NULL, 0))) //中間分別是主機,用戶名,密碼,數據庫名,端口號(可以寫默認0或者3306等),可以先寫成參數再傳進去{printf("Error connecting to database:%s\n", mysql_error(&mysql));return false;}else{MessageBoxA(NULL, "連接MYSQL數據成功!", "消息", MB_OK);printf("Connected...\n");return true;}

常用數據庫操作函數

函數描述
mysql_affected_rows()返回上次調用查詢更改/刪除/插入的行數
mysql_change_user()更改打開連接上的用戶和數據庫
mysql_close()關閉數據庫
mysql_commit()提交事務
mysql_real_connect()連接到MySQL服務器
mysql_error()返回上次調用的MySQL函數的錯誤信息
mysql_fetch_fields()返回字段結構的數組
mysql_fetch_row()從結果集中獲取下一行
mysql_num_fields()返回結果集中的列數
mysql_num_rows()返回結果集中的行數
mysql_query()執行指定為“以NULL終結的字符串”的SQL查詢
mysql_rollback()回滾事務
mysql_select_db()選擇數據庫
mysql_store_result()檢索完整的結果集至客戶端
在 書寫SQL語句時,我們的變量需要用單引號括起來。否則得到的是變量本身這個字符串,而不是其中的值。

查詢操作

1、mysql_query()函數

MySQL提供mysql_query()函數用于執行SQL語句,執行指定為“以NULL終結的字符串“的SQL查詢。

相當于是將SQL用將函數來執行,SQL語句則和c語言無關,可以參考這篇文章:

MySQL基本操作

例如:

if(mysql_query(&mysql,"select * from tb_book")){//查詢失敗 }else{ //查詢成功 }

插入操作

插入操作是使用mysql_query()函數和 SQL中的插入語句來實現的。

注意

  • 插入的數據類型應與被加入列的數據類型對應相同或者系統可以自動轉換。
  • 添加的數據范圍必須在列規定的范圍內。

例如:

void Insert() {char sql[1000] = "insert into tb_book (ID,bookname,author,bookconcern) values(";char dest[2000] ="";strcat_s(dest,sizeof(dest), sql);strcat_s(dest, sizeof(dest), "'");scanf_s("%s", id, 10);strcat_s(dest, sizeof(dest), id); // 將圖書館編號追加到sql語句后面strcat_s(dest, sizeof(dest), "', '");scanf_s("%s", bookname, 50);strcat_s(dest, sizeof(dest), bookname);//圖書名printf("\t Author: ");scanf_s("%s", &author, 50);strcat_s(dest, sizeof(dest), "', '");strcat_s(dest, sizeof(dest), author); //作者printf("\t Bookconcern: ");scanf_s("%s", &bookconcern,100);strcat_s(dest, sizeof(dest), "', '");strcat_s(dest, sizeof(dest), bookconcern);//簡介strcat_s(dest, sizeof(dest), "');");printf("%s\n", dest);if (mysql_query(&mysql, dest) != 0) {//將錯誤日志寫到文件中printf( "\t Can not insert record!\n");}else{printf("\t Insert success!\n");} } 在C語言中在執行插入,刪除和修改操作時,不用在執行語句后再提交事務。(區別與Python)

修改操作

插入操作是使用mysql_query()函數和 SQL中的更新語句來實現的。

例如:

void Update() {printf("\t Bookname:")scanf("%s", &bookname);char sql[1000] = "update tb_book set bookname= '";strcat(dest, sql);strcat(dest, bookname);//圖書名printf("\t Author");scanf("%s", &author);strcat(dest, "',author= '"); strcat(dest, author);//作者printf("\t Bookconcern");scanf("%s", &bookconcern);strcat(dest, "',bookconcern= '");strcat(dest, bookconcern);//簡介strcat(dest, "' where id = ");strcat(dest, id);if (mysql_query(&mysql, dest) != 0) {//將錯誤日志寫到文件中fprintf(stderr, "\t Can not modify record!\n", mysql_errno(&mysql));}else{printf("\t Modify success!\n")} }

刪除操作

插入操作是使用mysql_query()函數和 SQL中的刪除語句來實現的。

示例:

void delete() {scanf("%d", &id);sql = "select * from tb_book where id=";strcat(dest, sql);strcat(dest, id);sql = "delect from tb_book where ID= ";printf("%s", dest1);strcat(dest1, sql);strcat(dest1, id);if (mysql_query(&mysql, dest1) != 0) {//將錯誤日志寫到文件中fprintf(stderr, "\t Can not delete record!\n", mysql_errno(&mysql));}else{printf("\t Delete success!\n")} }

總結

以上是生活随笔為你收集整理的C语言操作MySQL-----又一个小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美疯狂做受xxxxx高潮 | 免费人成在线观看视频播放 | 国产喷潮 | 鸥美一级片 | 国产精品久久国产精品 | 国产高清视频免费在线观看 | 黄色一级片欧美 | 一区不卡在线观看 | 久久亚洲视频 | 国内精品人妻无码久久久影院蜜桃 | 嫩草av91| 卡一卡二卡三 | 9i在线看片成人免费 | 青娱网电信一区电信二区电信三区 | 官场艳妇疯狂性关系 | 久久精品一区二区三区黑人印度 | 午夜剧场免费在线观看 | 综合网在线观看 | 国产一区二区三区免费 | 国产第一av| 久久99一区| 一级片aaaa | 韩日激情视频 | 操欧美美女 | 免费一区二区三区 | 2018av在线| www在线观看免费视频 | 久久久经典| 国产精品久久久久一区二区 | 无码人妻av免费一区二区三区 | 杨幂国产精品一区二区 | 亚洲欧洲天堂 | 国产专区在线 | 中文一区二区在线观看 | 成人欧美一区二区三区黑人免费 | 美女让男人捅 | 中文字幕免费在线视频 | 99在线免费视频 | 91爱爱爱| 特级毛片在线 | 在线观看污污网站 | 午夜亚洲视频 | 国内精品亚洲 | 亚洲日本欧美 | 中文写幕一区二区三区免费观成熟 | 亚洲视频在线观看免费视频 | 色综合999| 一眉道姑 | 91丨国产丨白丝 | 色射射 | 91在线观看. | 色视频在线免费观看 | 免费观看成年人网站 | 久久看片 | 亚洲欧美日韩精品色xxx | 亚洲乱码一区 | 在线观看你懂的网站 | 青青草国产精品视频 | 婷婷深爱网 | 国产夜色视频 | 亚洲综合一区二区 | 欧美性极品少妇xxxx | 欧美一区二区视频在线 | 欧美亚洲视频一区 | 国产精品一区二区在线观看 | 亚洲综合一二三区 | 免费黄色激情视频 | 亚洲激情国产 | 想要视频在线观看 | 色噜噜一区二区 | 美女被草视频在线观看 | 国产精品国产三级国产 | 99精品视频在线免费观看 | 国产精品国产精品国产专区不卡 | 欧美激情久久久久久 | 国产成人精品亚洲 | 日本wwwwww | 男人的网址 | 我的丝袜美腿尤物麻麻 | aaaaa级片 | 欧美在线 | 日韩在线电影一区二区 | 国产无套粉嫩白浆内谢 | 中文字幕一区二区三区免费看 | 免费看黄色一级视频 | 日本成人精品视频 | 午夜福利123 | 日韩免费大片 | xx久久 | 国产一区二区观看 | 国产黄大片在线观看画质优化 | 69xx欧美 | 少妇熟女高潮流白浆 | 日韩一级中文字幕 | 成人依依 | 欧美视频在线播放 | 精品小视频在线观看 | 黄色高潮| 国产成人资源 |