window下连接mysql

网上很多VC连接mysql的例子都是要带个libmysql.dll才能正常使用的。

但有时我们并不想多带个libmysql.dll,只想单文件就能使用或者你是要

封装在一个dll文件里,这时你要就用到mysqlclient.lib这个静态库了。

示例代码如下,很很简单,就不多说了。

相关的mysql头文件及静态库:

http://download.csdn.net/source/1047386

#include <stdio.h>
#include <windows.h>
#include "mysql.h"

//忽略LIBCMT.lib, MSVCRTD.lib这些库,不然链接时会报lnk2005错误
#pragma comment(linker,"/nodefaultlib:LIBCMT.lib")
#pragma comment(linker,"/nodefaultlib:MSVCRTD.lib")

/*用mysqlclient.lib,不要用libmysql.lib,要不你要多带一个libmysql.dll
静态库有两个,一个是debug版的,一个是release版的,要注意
*/
#if defined _DEBUG
#pragma comment(lib, "..\\mysqllib\\lib\\debug\\mysqlclient.lib") 
#else
#pragma comment(lib, "..\\mysqllib\\lib\\opt\\mysqlclient.lib")
#endif

#pragma comment(lib, "wsock32.lib")
//#pragma comment(lib, "Advapi32.lib")


int main()
{
    MYSQL* mysql = NULL;
    mysql = mysql_init(mysql);

    MYSQL_RES* res;
    MYSQL_ROW record;

    mysql_real_connect(mysql, "192.168.1.99", "root", "hyd409", "signallamp1", 3306, NULL, NULL);
    mysql_query(mysql, "select * from user");
    res = mysql_store_result(mysql);
    while ((record = mysql_fetch_row(res)))
    {
        printf("auth=%s,password=%s,access=%s\n", record[0], record[1], record[2]);
    }
    mysql_free_result(res);
    mysql_close(mysql);

    printf("Over");
    //getchar();

    while (1);

    return 0;
}

 遇到的问题:

我用C++函数mysql_use_result获取mysql数据库中的数据,其编码格式为utf-8,但得到的是中文字符串都是'?'

答案
执行mysql_use_result语句之前增加一句:
char *sql="set names gbk;";
msyql_query(sql);
这样执行后将当前会话的客户端编码格式调整为中文格式。

转载于:https://www.cnblogs.com/tiancun/p/8268259.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值