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

歡迎訪問 生活随笔!

生活随笔

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

数据库

C连接MySQL数据库开发之Windows环境配置及测试

發布時間:2025/3/20 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C连接MySQL数据库开发之Windows环境配置及测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、開發環境

Win8.1 64位、VS2013、MySQL5.5.3764位

MySQL安裝目錄為:C:\Program Files\MySQL\MySQL Server 5.5

二、配置工程環境 首先創建一個控制臺空項目,打開VS2013,文件--> 新建項目 --> 常規 --> 選擇“空項目”

?

? ? ? 因為我們要使用MySQL數據庫的API接口編程,所以需要將工程的附加頭文件搜索目錄和附件庫文件搜索目錄,指向MySQL安裝目錄對應的位置,下面是我機子上mysql庫和頭文件目錄:

?

將VS2013工程的附加頭文件目錄和附加庫目錄指向上面兩個目錄。

?

1> 配置頭文件目錄

打開工程配置屬性窗口--> C/C++ --> 常規 --> 附加包含目錄,把mysql的include目錄添加到附加包含目錄中,如下圖所示:

?

?

?

2> 配置庫文件目錄

打開工程配置窗口--> 鏈接器--> 常歸 --> 附加庫目錄,把mysql的lib目錄添加到附加庫目錄中,如下圖所示:

?

?

打開工程配置窗口--> 鏈接器--> 輸入-->附中依賴項,打libmysql.lib靜態庫添加到工程編譯依賴項,如下圖所示:

?

?

?

將libmysql.dll動態庫拷貝到工程的根目錄或Debug目錄下:

?

?

三、測試開發環境 #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <mysql.h>void testQuery(MYSQL *mysql); // 測試查詢數據void main() {MYSQL *mysql = NULL;/*初始化MYSQL連接句柄*/mysql = mysql_init((MYSQL *)0);if (!mysql){return;}/*連接數據庫,連接成功返回conn,否則返回NULL參數1:mysql_init初始化數據庫返回的MYSQL句柄參數2:數據庫服務器地址參數3:數據庫用戶名參數4:數據庫密碼參數5:數據庫名稱參數6:數據庫端口,為0表示默認3306參數7:如果unix_socket不是NULL,字符串指定套接字或應該被使用的命名管道。注意host參數決定連接的類型參數8:通常是0*/mysql = mysql_real_connect(mysql, "localhost","root", "root", "test", 0, NULL, 0);if (mysql){printf("connection succellfull the database!\n");}else{printf("connection error:%d, %s\n",mysql_errno(mysql), mysql_error(mysql));}// 查詢數據testQuery(mysql);// 關閉連接mysql_close(mysql);system("pause"); }// 測試查詢 void testQuery(MYSQL *mysql) {MYSQL_ROW row;MYSQL_RES *res = NULL;MYSQL_FIELD *fields = NULL;int i, field_count;char *sql = "select * from t_user";int flag = mysql_real_query(mysql, sql, (unsigned long)strlen(sql));if (flag){printf("Query error:%d, %s\n",mysql_errno(mysql), mysql_error(mysql));return;}// 將查詢結果讀到內存當中res = mysql_store_result(mysql);// 獲取結果集中的所有字段fields = mysql_fetch_fields(res);// 字段數量field_count = mysql_field_count(mysql);for (i = 0; i < field_count; i++){printf("%s\t", fields[i].name);}printf("\n");// 遍歷結果集的每一行數據while (row = mysql_fetch_row(res)){for (i = 0; i < field_count; i++){printf("%s\t", row[i]);}printf("\n");} }

?

mysql測試數據及表結構:

DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT NULL,`age` int(11) DEFAULT NULL,`address` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;LOCK TABLES `t_user` WRITE; INSERT INTO `t_user` VALUES (1,'zhangsan',22,'hunan'),(2,'lisi',30,'beijin'); UNLOCK TABLES;

測試結果:

?


?

小結配置步聚:

1> 安裝mysql

2> 創建VS工程,配置工程頭文件(mysql.h所在目錄)和庫文件(libmysql.lib所在目錄)附加目錄,指向mysql對應的目錄

3> 將libmysql.dll動態庫拷貝到工程根目錄或Debug目錄

4> 編寫測試程序,驗證C連接Mysql數據庫

----------------------------------------------------------------------優雅的分割線------------------------------------------------------------------------------------

常見錯誤:

1、main.obj : error LNK2019: 無法解析的外部符號 mysql_init。。。。。

原因是沒有在工程當中添加libmysql.lib配置,配置庫文件目錄

?

2、無法啟動此程序,因為計算機中丟失libmyslq.dll。。。。

將libmysql.dll動態庫拷貝到工程的根目錄或Debug目錄下。

?

3、未引入windows.h頭文件,因為在windows連接mysql是通過socket方式與數據庫進行通信的

?

4、main.obj : error LNK2019: 無法解析的外部符號 _mysql_init@4,該符號在函數 _main 中被引用.....

數據庫位數與編譯位數不一致,導致在鏈接時mysql的庫函數找不到,比如:我的mysql是64位,提供的庫當然是64位的,如果你在VS上用32位的平臺去編譯就會造成鏈接時出錯。

?

修改編譯平臺,工程-->屬性-->配置管理器-->在解決方案的工程列表中選擇對應的項目,并將其修改成32位或64位,如果沒有就新建一個。

?

?

工程源碼下載:Windows平臺C連接MySQL數據庫

?

參考文檔:

C/C++連接MySql數據庫

出處:https://blog.csdn.net/xyang81/article/details/26814633

總結

以上是生活随笔為你收集整理的C连接MySQL数据库开发之Windows环境配置及测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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