您的位置:首页 > 数据库 > MySQL

VC 6.0 连接mysql 乱码处理

2014-07-07 10:57 387 查看
使用VC6.0连接mysql的时候,在输出中文时,会出现乱码,可以用下面的函数解决:

mysql_set_character_set(myData,"gb2312"); //这个是用在linux 下的,

VC6.0下用这个: ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gb2312");//来保证你字码, 要加重记住.没这个设置写到数据mysql里就是乱码了,
汉字就是乱码

改过之后的代码如下:

#include <malloc.h>
#include <stdio.h>
#include <winsock.h>
#include "mysql.h"

#pragma comment( lib, "libmysql.lib")

void main()
{
char SqlText[256] = "";
unsigned char buf[6];
MYSQL mysql;
MYSQL_RES *res = NULL;
MYSQL_FIELD * fd = NULL;
MYSQL_ROW row;
int i = 0;

mysql_init( &mysql );
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gb2312");
if ( !mysql_real_connect( &mysql, "localhost", "root",
"1111", "spider", 3306, NULL, 0) )
{
puts("数据库连接失败");
mysql_close( &mysql );
return FALSE;
}
else
{
puts("数据库连接成功");
/*	sprintf( SqlText, "insert into animals(name, kg) values ('chicken',6), ('dog', 4)");
//insert失败
if ( mysql_query( (MYSQL *)&mysql, SqlText ) )
{
puts("Can't insert data to table");
printf("%s\n", mysql_error(&mysql));
mysql_close( &mysql );
return FALSE;
}
*/
sprintf( SqlText, "select * from category");
//进行数据检索
if ( !mysql_query( (MYSQL *)&mysql, SqlText ))
{
res = mysql_store_result( &mysql );
i = (int)mysql_num_rows( res );
printf("Query: %s\n%d records found:\n", SqlText, i );
//输出各字段名
for ( i=0; fd = mysql_fetch_field(res); i++ )
{
printf("%-6s\t", fd->name );
}
puts("");

//依次读取各条记录
while ( row = mysql_fetch_row(res) )
{
printf( "%-6s\t%-6s\t%-6s\n",row[0],row[1],row[2] );
}
mysql_free_result( res );
}
else
{
mysql_close( &mysql );
return FALSE;
}
}
mysql_close(&mysql);

return TRUE;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: