C語言連線MySQL資料庫
阿新 • • 發佈:2019-01-24
1 配置
win7 32bit,mysql5.5,vs2008
- vc路徑設定,工具 -> 選項 -> 專案和解決方案 -> VC++ 路徑,Platform選擇Win32,然後
Include files中新增D:\Program Files\MySQL\MySQL Connector.C 6.1\include
Library files中新增D:\Program Files\MySQL\MySQL Connector.C 6.1\lib
注意:高版本的VS如2013已經將該設定遷移到專案屬性中;以上路徑根據安裝位置做相應修改。 - 附加依賴項設定,專案屬性 -> 配置屬性 -> 連結器 -> 輸入 -> 附加依賴項,編輯加入
libmysql.lib
#pragma comment(lib, "libmysql.lib")
語句) libmysql.dll
設定,MySQL安裝後該檔案在D:\Program Files\MySQL\MySQL Connector.C 6.1\lib
路徑下,由於該路徑並沒有加到環境變數Path
中,因此程式執行會出現“找不到libmysql.dll”的錯誤。可將該路徑加到環境變數Path
中,也可將libmysql.dll
檔案拷貝到程式路徑下或Path
中的某個路徑,而通常是將libmysql.dll
檔案拷貝到系統路徑C:\Windows\System32
中。
關於以上路徑的說明見我的另一篇
2 函式介紹
下表列出了本文用到的mysql函式
函式 | 說明 |
---|---|
mysql_init | mysql初始化 |
mysql_real_connect | 連線mysql |
mysql_query | 執行SQL語句 |
mysql_store_result | 儲存查詢的結果 |
mysql_fetch_row | 取出結果中的一行 |
mysql_free_result | 釋放結果集 |
mysql_close | 關閉連線 |
3 示例程式
#include <stdio.h>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib")
int main(void)
{
const char* host = "127.0.0.1";
const char* user = "root";
const char* passwd = "******";
const char* db = "sakila";
unsigned int port = 3306;
const char * query = "select * from country"; // 查詢語句
MYSQL mysql; // 宣告MySQL的控制代碼
MYSQL_RES* result; // 結果集
MYSQL_ROW row; // 結果集中的一行
mysql_init(&mysql); // MySQL初始化
if (!mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0)) // 連線MySQL
{
fprintf(stderr, "連線失敗(%s)\n", mysql_error(&mysql));
return 1;
}
else
{
printf("連線成功\n");
}
if (mysql_query(&mysql, query)) // 執行SQL語句
{
fprintf(stderr, "查詢失敗!\n");
mysql_close(&mysql); // 關閉連線
return 1;
}
else
{
if ((result = mysql_store_result(&mysql)) == NULL) // 儲存查詢的結果
{
fprintf(stderr, "儲存結果集失敗!\n");
mysql_close(&mysql); // 關閉連線
return 1;
}
else
{
printf("id\tcity\n==\t========\n");
while ((row = mysql_fetch_row(result))) // 取出結果中的一行
{
printf("%s\t%s\n", row[0], row[1]);
}
}
}
mysql_free_result(result); // 釋放結果集
mysql_close(&mysql); // 關閉連線
printf("連線關閉\n");
system("pause");
return 0;
}
執行結果