c 怎麼和mysql連線 c如何和mysql連線

2021-10-17 11:59:55 字數 3184 閱讀 6237

本篇文章以環境:win7 x64、vs2008、mysql為例進行講解c如何與mysql連線

對於已經安裝mysql的,檢視mysql安裝目錄,如果安裝目錄下沒有include和lib目錄,

下面開始配置vs2008,大致需要三步。

由於我們要使用mysql的api,並且我們機子上肯定安裝了mysql資料庫,所以我們要將工程的標頭檔案路徑指向mysql安裝目錄的同檔案mysql.h所在的位置,將連線庫路徑指向libmysql.lib所在的路徑,

這兩個檔案一般在include、lib目錄下。

新建乙個專案,右鍵該專案,選擇屬性,彈出屬性對話方塊。

第一:將x專案屬性頁的c/c++->常規->附加包含目錄指向mysql.h所在的位置:c:\program files\mysql\mysql server 5.1\include

通過上述配置後出現錯誤:

無法解析的外部符號 _mysql_close@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_free_result@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_num_fields@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_fetch_row@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_store_result@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_error@4,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_real_query@12,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_select_db@8,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_real_connect@32,該符號在函式 _main 中被引用

無法解析的外部符號 _mysql_init@4,該符號在

最後附上c連線mysql的示例**:// test9.24.cpp : 定義控制台應用程式的入口點。

//#include

//#include

//#include //包含mysql所需要的標頭檔案

//#include //socket,連線mysql也需要用的

#include

#include "stdio.h"

#include "winsock.h"

#include "mysql.h"

mysql mysql, *sock; //宣告mysql的控制代碼

int main(void)

const char * host = "127.0.0.1"; //因為是作為本機測試,所以填寫的是本地ip

const char * user = "root"; //這裡改為你的使用者名稱,即連線mysql的使用者名稱

const char * passwd = "123"; //這裡改為你的使用者密碼

const char * db = "yiersan"; //這裡改為你要連線的資料庫的名字

unsigned int port = 3306; //這是mysql的伺服器的埠,如果你沒有修改過的話就是3306。

const char * unix_socket = null; //unix_socket這是unix下的,我在windows下,所以就把它設定為null

unsigned long client_flag = 0; //這個引數一般為0

int t;

const char * i_query = "select * from yes_msg"; //查詢語句

mysql_res * result; //儲存結果集的 www.2cto.com

mysql_row row; //代表的是結果集中的一行

mysql_init(&mysql); //連線之前必須使用這個函式來初始化

if ( (sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag) ) == null ) //連線mysql

printf("連線失敗,原因是: \n");

fprintf(stderr, " %s\n", mysql_error(&mysql));

exit(1);

else

fprintf(stderr, "連線mysql成功!!\n");

if ( mysql_query(&mysql, i_query) != 0 ) //如果連線成功,則開始查詢

fprintf(stderr, "查詢失敗!\n");

exit(1);

else

if ( (result = mysql_store_result(&mysql)) == null ) //儲存查詢的結果

fprintf(stderr, "儲存結果集失敗!\n");

exit(1);

else

while ( (row = mysql_fetch_row(result)) != null ) //讀取結果集中的資料,返回的是下一行。因為儲存結果集時,當前的游標在第一行【之前】

printf("name is %s\t", row[0]); //列印當前行的第一列的資料

printf("age is %s\t\n", row[1]); //列印當前行的第二列的資料

mysql_free_result(result); //釋放結果集

mysql_close(sock);

scanf("%d",&t);//關閉連線

system("pause");

exit(exit_success);

C 內部連線和外部連線

內部連線 假如乙個名稱對於他的編譯單元來說是區域性的,並且在連線時不會和其他編譯單元中的同樣的名稱相衝突,那麼這個名稱有內部連線 注 有時也將宣告看作是無連線的,這裡我們統一看成是內部連線的 以下情況有內部連線 a 任何的宣告 b 名字空間 包括全域性名字空間 中的靜態自由函式 靜態友元函式 靜態變...

C陷阱和缺陷 連線

一,概念 聯結器的作用在於把有編譯器或彙編器生成的若干個目標模組,整合成乙個被稱為載入模組或可執行檔案的實體,該實體能夠被作業系統直接執行。其中,某些模組式直接作為輸入提供給聯結器的 而另外一些目標木塊則是根據連線過程的需要,從包括有型別printf函式的庫檔案中取得的。二,連線過程問題的根源 c程...

c 如何連線MYSQL資料庫

一 用mysqldrivercs連線mysql資料庫 mysqldriver.dll,然後將mysqldriver.dll新增引用到專案中 二 通過odbc訪問mysql資料庫 1.安裝microsoft odbc.net,還是去谷歌搜尋。2.安裝mysql的odbc驅動程式 3.管理工具 資料來源...