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

歡迎訪問 生活随笔!

生活随笔

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

数据库

C语言连接MYSQL存取数据的一个例子

發布時間:2025/3/21 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言连接MYSQL存取数据的一个例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1.在linux上安裝好Mysql;查看本博客安裝教程

?2. 編譯:gcc -I/usr/include/mysql XXXX.c -L/usr/lib/mysql -lmysqlclient -o XXXX
(詳解:需要在gcc編譯時指定 頭文件地址,用命令mysql_config,即可獲取mysql安裝后頭文件所在位置,庫文件所在位置,之后指定相關路徑。-I /usr/include/mysql,同時需要指定mysql的庫文件, 搜索目錄為:-L /usr/lib64/mysql ,之后指定需要的庫文件名:-lmysqlclient)
?


?一個簡單的例子:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include "mysql.h"int main() {MYSQL conn;int res;MYSQL_RES * result;MYSQL_ROW row;mysql_init(&conn);if (mysql_real_connect(&conn, "localhost", "root", "0701", "wuchen", 3369, NULL, 0)) {printf("coneect mysql successful\n請選擇功能:\n");int choose;char str1[20], str2[20];char insert_query[80];char delete_query[50] = "delete from test where name='";char select_query[] = "select * from test";printf("1.insert\n2.select\n3.delete\n");while (scanf("%d", &choose)) {switch (choose) {case 1:printf("姓名 年齡:\n");memset(insert_query, 0, sizeof(insert_query));//insertscanf("%s %s", str1, str2);strcat(insert_query, "insert into test values('");strcat(insert_query, str1);strcat(insert_query, "',");strcat(insert_query, str2);strcat(insert_query, ")");printf("SQL語句: %s\n", insert_query);res = mysql_query(&conn, insert_query);if (!res) {printf("insert %lu rows\n", (unsigned long)mysql_affected_rows(&conn));}else {printf("insert error\n");}break;case 2://selectprintf("SQL語句: %s\n", select_query);if (mysql_query(&conn, select_query) != 0) {fprintf(stderr, "查詢失敗!\n");exit(1);}else {if ((result = mysql_store_result(&conn)) == NULL) {fprintf(stderr, "保存結果集失敗!\n");exit(1);}else {while ((row = mysql_fetch_row(result)) != NULL) {printf("name is %s , ", row[0]);printf("age is %s\n", row[1]);}}}break;case 3:printf("姓名:\n");scanf("%s", str1);strcat(delete_query, str1);strcat(delete_query, "'");//deleteprintf("SQL語句: %s\n", delete_query);res = mysql_real_query(&conn, delete_query, (unsigned int)strlen(delete_query));if (!res) {printf("delete successful\n");}else {printf("delete error\n");}break;}}mysql_close(&conn);}return 0; }

一、解釋一下函數功能和用法
1.mysql_real_connect
函數原型:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
參數說明:
host:本地用localhost或127.0.0.1,遠程寫IP;
user、passwd:登陸數據庫的用戶名密碼
db:數據庫名
port:數據庫所用的端口(MySQL一般為3306)
unix_socket:先寫個NULL(官方解釋:如果unix_socket不是NULL,該字符串描述了應使用的套接字或命名管道)
client_flag:先寫個0(指定特定功能)


2.mysql_real_query
函數原型:int mysql_real_query(MYSQL *mysql, const char *query, unsigned int length)
參數說明:
query:SQL語句;
length:SQL語句長度


3.mysql_store_result
函數原型:MYSQL_RES *mysql_store_result(MYSQL *mysql)
返回值說明:具有多個結果的MYSQL_RES結果集合。如果出現錯誤,返回NULL。


4.mysql_fetch_row
函數原型:MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
參數說明:具有多個結果的MYSQL_RES結果集合

返回值說明:在mysql_store_result()之后使用時,如果沒有更多的行可檢索時,mysql_fetch_row()返回NULL。


?

?

?

總結

以上是生活随笔為你收集整理的C语言连接MYSQL存取数据的一个例子的全部內容,希望文章能夠幫你解決所遇到的問題。

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