查看: 1967|回复: 0

[资料分享] MySQL 链接数据库的方法,出现乱码,注意设置字符集

[复制链接]

4

主题

3

回帖

46

积分

管理员

积分
46
发表于 2023-3-6 11:42:58 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×

  1. 7 }0 g! E3 E0 N( L3 B
  2. MySQLConnect::MySQLConnect(), L/ o% s( ?* u8 S
  3. {
    6 c/ p( N$ q6 {" G# d
  4. , b; `6 R& [0 m! B$ R; N& d
  5.         if (mysql_library_init(0, nullptr, nullptr))6 o. {" p) F- @( b, t: w8 T
  6.         {6 p% B  g  y9 F: S
  7.                 uc1601("CAPI初始化失败", 1);
    7 k, f8 \1 X1 l$ b( u$ j5 H
  8.         }# G; q( n! v3 F8 r: [- @
  9.         if (mysql_init(&mysql) == nullptr)
    9 z! K. W- z" R* c; r6 P; T
  10.         {
    " J5 N% Y/ b* Z! g+ I
  11.                 uc1601("初始化数据库变量失败", 1);3 p" D0 h4 g" W

  12. * Z1 l6 Z  @0 ?& s# v7 {, X
  13.         }
    ! o6 i. e& |* X# i  a
  14.         if (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))
    + R0 n+ |( k; W# f
  15.         {0 ?) P1 ]7 P) e; W; D
  16.                 uc1601("设置连接选项失败", 1);  @5 x! p  e7 `; S9 h
  17.         }
    ; `- P/ v: l! |" ?
  18. }
    9 o/ X% l4 y9 T( ?9 V

  19. " j- P8 c! ]$ a
  20. bool MySQLConnect::ConnectDatabase()
    ' |/ R7 J' l5 U/ a: k; L' L
  21. {
    ! i& c( s% ?1 J8 A
  22.         //初始化mysql4 R3 T: }7 `0 o8 Z& Q6 Y& {
  23. & P! h7 i1 C4 u
  24.         mysql_init(&mysql);   
    6 j% Y4 Y0 m2 h$ W, i

  25. : G& }- D6 O. S3 h9 r! A, f
  26.         //这个非常重要,否则打印出现乱码( V3 `+ p( m4 e- \
  27.         if (!mysql_set_character_set(&mysql, "gbk"))0 c6 g' p& ~+ h9 }
  28.         {3 r' J( ?! m9 c1 F
  29.                 char msg[256];
    9 u7 s) f, u' @3 E1 S
  30.                 sprintf_s(msg, "Charset for the connection : %s\n", mysql_character_set_name(&mysql));
    ) i" i  Z3 l  B+ g
  31.                 uc1601(msg, 0);
    7 n- I5 _; D) @. w+ p
  32.         }
    % B0 o8 m5 t) z" l) y. z$ d
  33.         + ?6 `& o3 U: u8 `3 i, b
  34.         //连接mysql,数据库
    & y6 g* I4 s9 J8 H+ Z4 H0 y
  35.         if (!(mysql_real_connect(&mysql,MYSQL_HOSTNAME , MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DBNAME, MYSQL_DBPORT, NULL, 0)))
    7 V, y2 V- R2 q
  36.         {4 E$ q. W+ U) `9 _! d3 P; B2 ^- P
  37.                 char msg[1024];8 s& M# P3 Z! H0 N
  38.                 sprintf(msg,"Error connecting to database:%s\n", mysql_error(&mysql));
    8 ^# a1 t' B) t2 k
  39.                 uc1601(msg, 1);1 n3 F' d1 ]( d1 _& ^, C
  40.                 return false;
    0 g& O/ @/ T/ \! G3 z
  41.         }
    ( o$ o3 {* a1 Z, n
  42.         else) e( f$ m% b& t; ~3 z
  43.         {
    : c4 s5 k& @! P; J
  44.                 uc1601("数据库连接成功", 0);
    - o" F* \0 _- [
  45.                 return true;
    ' Y; g& v8 j. P8 n  C% _( a0 _
  46.         }" V. ?2 e7 a; ?& ^$ L
  47.        
    - }  I# H+ X8 D1 a7 t. v: g4 x8 R1 n
  48. }: E1 ~5 f1 M0 v2 |/ C
复制代码
2 |; V8 V  e1 `

4 e6 }% w: _' M, u) V
8 E2 z% A5 I3 \) K8 MMySQL 链接数据库的方法,出现乱码,注意设置字符集! o7 d0 j  Q& ^$ p
11.png
0 [5 v6 T, g2 d$ A: S
4 f+ C- J  E$ Y8 h* r
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部