c 对一个mysql数据库进行操作_C/C++对MySQL操作

昨天晚上在看C/C++对数据库的操作,猛然间觉得十分亲切,因为其中很多函数都和PHP中对MySQL操作相同,这是才想起PHP是C演化而来的。经过一番捣腾,终于完成了一个简单的程序,但是仍然存在着一个严重的问题,就是从数据库中得到的结果在屏幕上显示的是乱码,很让人烦。还望高手们赐教!

1.在机器上装上MySQL ,假设安装在 C:/MySQL/中;

2.这里我们用VC6.0来编写C++程序,但是这个之前要对VC6.0做一些设置,也就是把MySQL目录下的include和lib目录包含到VC6.0的directory选项中。具体的做法是在VC6.0中 tools(工具)>>option(选项)>>directories(目录)这个设置中把 include files 添加一个路径 C:/MySQL/include ,再给library files 添加一个路径C:/MySQL/lib/opt ,这样设置以后你就能够在程序中直接include对数据库操作的相关头文件了。

3.现在可以开始写程序了,代码如下:

//===========================================================//

//                TestMySQL.cpp

// Author : ASpire

// Discrb : for testing C++ in operating mysql

// Time   : 2010-3-18

//===========================================================//

/* include header about mysql */

#include "winsock2.h"

#include "mysql.h"

#include

#define CONN_HOST "localhost"

#define CONN_USER "user"

#define CONN_PWD "password"

#define CONN_DB "luntan"

//----------------------------------------------------------//

MYSQL mysql;

void exiterr(int exitcode)

{

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

exit(exitcode);

}

int mysql_test()

{

MYSQL_RES *res;

MYSQL_ROW row;

unsigned int i = 0;

/* init mysql handler */

if(!mysql_init(&mysql))

{

exiterr(-1);

}

/* connect to mysql */

if(!mysql_real_connect(&mysql,CONN_HOST,CONN_USER,CONN_PWD,NULL,MYSQL_PORT,NULL,0))

{

exiterr(-2);

}

/* select db */

if(mysql_select_db(&mysql,CONN_DB))

{

exiterr(-3);

}

/* set db charset */

char *sqlcharset = "SET NAMES 'GBK'";

if(mysql_query(&mysql,sqlcharset))

{

exiterr(-6);

}

/* execute a query */

char *sqlstr = "SELECT * FROM forum_auth";

if(mysql_query(&mysql,sqlstr))

{

exiterr(-4);

}

/* store result */

if(!(res = mysql_store_result(&mysql)))

{

exiterr(-5);

}

/* fetch row and get the result */

while(row = mysql_fetch_row(res))

{

for(i=0;i

{

printf("%s",row);

}

printf("/t");

}

/* free result */

mysql_free_result(res);

/* close mysql connection */

mysql_close(&mysql);

return 0;

}

//-----------------------------------------------------------//

int main()

{

mysql_test();

return 0;

}

//-----------------------------------------------------------//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值