日韩性视频-久久久蜜桃-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-----又一个小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

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