C++函數mysql_use_result獲取mysql數據庫中的數據中文顯示爲“?”

這裏寫圖片描述

數據庫編碼

在這裏就假裝都已經能夠訪問數據庫並且獲得數據,只是獲得的數據中,中文顯示爲“?”

解決措施:在使用數據之前先加上如下代碼

char *sql="set names utf8;";
mysql_query(&mysql_conn,sql);

具體位置可以看下面的例子

訪問數據庫的代碼如下

#ifndef __LCC__
#define __LCC__
#endif

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

int main(int argc, char **argv) {
    MYSQL mysql_conn; /* Connection handle */
    MYSQL_RES *mysql_result; /* Result handle */
    MYSQL_ROW mysql_row; /* Row data */
    int f1, f2, num_row, num_col;
    if (!mysql_set_character_set(&mysql_conn, "utf8"))
    {
        printf("New client character set: %s\n", mysql_character_set_name(&mysql_conn));
    }
    if (mysql_init(&mysql_conn) != NULL) {
        if (mysql_real_connect(
                               &mysql_conn, "localhost", "root",
                               "密碼", "數據庫名稱", MYSQL_PORT, NULL, 0) != NULL){
//            char *sql="set names utf8;";
//            mysql_query(&mysql_conn,sql);
            if (mysql_query(
                            &mysql_conn,
                            "select * from EMPLOYEE limit 10") == 0) {
                mysql_result = mysql_store_result(&mysql_conn);
                num_row = mysql_num_rows(mysql_result);
                num_col = mysql_num_fields(mysql_result);

                for (f1 = 0; f1 < num_row; f1++) {
                    mysql_row = mysql_fetch_row(mysql_result);

                    for (f2 = 0; f2 < num_col; f2++)
                        printf(
                               "[Row %d, Col %d] ==> [%s]\n",
                               f1+1, f2+1, mysql_row[f2]);
                }
            } else
                printf("Query fails\n");
        } else {
            int i = mysql_errno(&mysql_conn);
            //const *s = mysql_error(&mysql_conn);
            //printf("Connection fails(ERROR %d): %s\n", i, s);
        }
    } else
        printf("Initialization fails\n");

    mysql_free_result(mysql_result);
    mysql_close(&mysql_conn);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章