Windows平臺下Mysql C程序設計
一、哆嗦一下
從打開始學編程以來,接觸的第一門真正的編程語言是C(foxbase不算),想當年俺自學完浩強叔那本《C語言程序設計》時,老師才開始教pascal。自畢業以來一直沒有機會寫過有應用價值的C程序,從Delphi做到J2EE。打算從現在開始利用業余時間學習Pro*C,Mysql C,也不知為啥對C念念不忘,卻沒機用C來寫程序。
二、開發環境
1、 windowsXP
2、 mysql 5.0.22
3、 Dev-C++ 4.9.9.2
4、 Mysql C for Dev-Cpp (MySQL.DevPak)
a) 用過Dev-C++的人都應該知道devpak吧我就不詳說,如果你用的是C++,請下載(mysqlpp-2.3.2-gcc3.4.2-1due.DevPak)
b) MySQL.DevPak 下載地址: http://downloads.sourceforge.net/dev-cpp/MySQL.DevPak
三、安裝及配置
1、雙擊MySQL.DevPak文件,按步驟把這開發包安裝完成。直到package Mangaer 出現“MySQL”即可。
2、單擊“工具”->“編譯選項”->“編譯器”->“在連接器命令行中加下以下命令”(選擇),在下面的文本框中添加-lmysql 。
3、在Dev-C++中添加mysql的lib和include 文件,具體方法:
“工具”->“編譯選項”->“編譯器”->“目錄” 中添加
四、例程代碼
#include <stdlib.h>
#include <winsock.h>
#include <mysql.h>
#include <stdio.h>
/*
Name: 測試例子
Copyright: http://www.aygfsteel.com/pdw2009
Author: 裴德萬
Date: 09-03-08 18:14
Description:
*/
int main()
{
MYSQL mysql; //mysql連接
MYSQL_RES *res; //這個結構代表返回行的一個查詢結果集
MYSQL_ROW row; //一個行數據的類型安全(type-safe)的表示
char *query; //查詢語句
int t,r;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"localhost", "lottobar", "123456", "lottobar",3306,NULL,0))
{
printf( "Error connecting to database: %s"n",mysql_error(&mysql));
} else
printf("Connected..."n");
query="SET CHARACTER SET GBK"; //設置編碼
t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
if(t)
{
printf("編碼設置失敗"n");
}
query=" select * from demo ";
t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
if(t)
{
printf("執行查詢時出現異常: %s",mysql_error(&mysql));
}else
printf("[%s] 構建成功 "n",query);
res=mysql_store_result(&mysql);
while(row=mysql_fetch_row(res))
{
for(t=0;t<mysql_num_fields(res);t++)
{
printf("%s"t",row[t]);
}
printf(""n");
}
mysql_free_result(res);
sleep(1);
return 0;
}
五、注意事項
Windows C程序設只要涉及網絡的都應該加上這兩個文件,否則肯定出錯
#include <stdlib.h>
#include <winsock.h>
Mysql C亂碼的解決方式
query="SET CHARACTER SET GBK"; //設置編碼
t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
如果你有問題可以到www.aygfsteel.com/pdw2009去交流
該文屬作者原創,轉載請注明出: http://www.aygfsteel.com/pdw2009