在命令行模式下登录mysql;
//输入:show variables like '%char%';
//
//会出现如下显示:
variables value
character_set_client utf8
..............connection utf8
..............datatbase utf8
..............filesystem binary
..............resluts utf8
..............server utf8
..............dir 我们用不到,不管
//这些点代表之前的字符都是一样的,略写了
//如果,不是这样;
//输入 set names utf8;
//执行;
//再输入:show variables like '%char%';
//再看是否和上表显示相同;
//
//都相同的话,就可以执行下一步了;
//
int main()
{
MYSQL mysql;
MYSQL_RES *result;
MYSQL_FIELD *fields;
MYSQL_ROW rows;
int numOfRows, numOfFields;
mysql_init(&mysql);
//用于连接数据库服务器
if (!mysql_real_connect(&mysql, "127.0.0.1", "root", "root", "", 0, NULL, 0)) {
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
return -1;
}
printf("MYSQL VERSON IS : %s\n", mysql_get_server_info(&mysql));
//这里设置一下 gbk 就行了;
mysql_query(&mysql, "set names gbk;");
//选中数据库
int ik=mysql_real_query(&mysql, "use testmysql;", strlen("use testmysql;"));
if (!mysql_real_query(&mysql, "SELECT * FROM lessa order by id desc LIMIT 0 , 2; ",strlen("SELECT * FROM lessa order by id desc LIMIT 0 , 2; ")) )
{
result = mysql_store_result(&mysql);
while (fields = mysql_fetch_field(result)) {
printf("%s\t", fields->name);
}
printf("\n");
numOfFields = mysql_num_fields(result);
while (rows = mysql_fetch_row(result)) {
for (int i = 0; i < numOfFields; i++) {
char szBuffer[125] = { 0 };
sprintf(szBuffer, "%s - %s", rows[0], rows[1]);
std:: cout << szBuffer;
}
printf("\n");
}
numOfRows = (int)mysql_num_rows(result);
printf("%d rows fetch.\n", numOfRows);
mysql_free_result(result);
}
else {
printf("select error : %s\n", mysql_error(&mysql));
}
mysql_close(&mysql);
return 0;
}