- 论坛徽章:
- 0
|
我在linux下用C语言来访问MySql数据库,因为有些表格中有中文
所以我想在连接中更改字符集
MYSQL* VS_OpenDB(DBINFO *pstDBInfo)
{
MYSQL *pDBHandle = NULL;
MYSQL *pDB = NULL;
int iDBRet = 0;
pDBHandle = mysql_init(NULL);
if(NULL== pDBHandle)
{
printf("Init MY SQL fail.\n");
return NULL;
}
iDBRet = mysql_options(pDBHandle, MYSQL_SET_CHARSET_NAME, "gbk");
if (iDBRet != 0)
{
printf("Set MY SQL Option fail.\n");
return NULL;
}
//pDB = mysql_real_connect(pDBHandle, pstDBInfo->szDBServerIP,
// pstDBInfo->szUserName, pstDBInfo->szPassword, pstDBInfo->szDBName,
// 0, NULL, 0);
if(!mysql_real_connect(pDBHandle, pstDBInfo->szDBServerIP,
pstDBInfo->szUserName, pstDBInfo->szPassword, pstDBInfo->szDBName,
0, NULL, 0))
{
printf("Conect MY SQL fail.\n");
return NULL;
}
if (!mysql_set_character_set(pDBHandle, "gbk"))
{
printf("New client character set: %s\n", mysql_character_set_name(pDBHandle));
}
else
{
printf("set charset error\n");
}
return pDBHandle;
} |
不管是用mysql_options还是mysql_set_character_set 设置"gbk"都不成功
用mysql_query(pDB, "set names gbk"); 到是可以
请问为什么? |
|