一、哆嗦一下
从打开始学编程以来,接触的第一门真正的编程语言是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.blogjava.net/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.blogjava.net/pdw2009去交流
该文属作者原创,转载请注明出: http://www.blogjava.net/pdw2009
http://hi.baidu.com/leeyou1450/blog/item/78fdd438ec9986f63a87ceaa.html