查看: 2044|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×

  1. 3 E* v8 O% S* W$ D0 I0 Y* F4 O- W
  2. MySQLConnect::MySQLConnect()2 q: j$ I4 h0 ?& P7 a6 d0 x/ G* s
  3. {1 R7 s8 o) J0 ~& }" D
  4.   _& m/ o& T  X$ x
  5.         if (mysql_library_init(0, nullptr, nullptr))
    8 q$ m' }2 S3 H4 G( w: z
  6.         {
    - v% ~6 u5 r# l; ]
  7.                 uc1601("CAPI初始化失败", 1);/ W0 N7 g) u, T4 I2 N' j. G4 I5 j
  8.         }' Z2 F% R5 [- p! l! n! X1 L9 P
  9.         if (mysql_init(&mysql) == nullptr)
    ' @0 o" ]* i( F& [0 s: W
  10.         {. A3 O4 \3 u+ O% D+ [3 p+ f( C
  11.                 uc1601("初始化数据库变量失败", 1);
    . r  M+ A- H! J

  12. % ^: F  e6 t$ P
  13.         }
    2 A9 A5 k$ D& d5 l: q7 n
  14.         if (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))4 G! G. f; q. }- e
  15.         {% \4 r. r/ ~. u/ a
  16.                 uc1601("设置连接选项失败", 1);/ {) z" E& p- p& i0 G
  17.         }
    5 f" N$ j5 c2 w/ n9 o
  18. }$ h! a% }4 @. a5 ~0 @! ~

  19. 6 |" F; U+ t: \5 G; i. e( h
  20. bool MySQLConnect::ConnectDatabase()0 r1 x5 D! |! O2 d9 b7 l
  21. {
    8 x6 H5 M  N( x% l, q- Q
  22.         //初始化mysql
    & F: C" |! L/ H5 _0 i# H

  23. 7 ]' x# w( K( n9 b2 Z
  24.         mysql_init(&mysql);   
    1 d; c% U9 j& g8 D4 e( \; c% @
  25. # _* G9 |9 Z' e; u: N
  26.         //这个非常重要,否则打印出现乱码
    " Z7 Q' k# t7 Q
  27.         if (!mysql_set_character_set(&mysql, "gbk")). A) ?. ]2 O- n5 s
  28.         {! F; n& B3 t/ N9 i6 m& f' _
  29.                 char msg[256];
      r; o3 t: S8 M" p" A
  30.                 sprintf_s(msg, "Charset for the connection : %s\n", mysql_character_set_name(&mysql));
    5 Q! c" Y" L) E8 ]0 G. G  {
  31.                 uc1601(msg, 0);
    1 H% j2 `6 s% t( `& Z( y
  32.         }
    - Z3 ]3 d# ?* q1 b
  33.        
    , G1 y# D* v$ K6 d0 u1 b
  34.         //连接mysql,数据库
    . y6 S# A" a; K# q4 j4 a
  35.         if (!(mysql_real_connect(&mysql,MYSQL_HOSTNAME , MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DBNAME, MYSQL_DBPORT, NULL, 0))) $ z" j, O! w9 }  \+ s! J3 @
  36.         {
    & d  M1 t; m/ L1 p
  37.                 char msg[1024];) q4 J6 \0 Y7 c' w+ I
  38.                 sprintf(msg,"Error connecting to database:%s\n", mysql_error(&mysql));& [3 L# O+ b1 B# f% U
  39.                 uc1601(msg, 1);
    # e$ k2 _7 t  Y- E# ?/ x5 O. s: ?
  40.                 return false;
    0 s. u; x% {4 P; q  |7 p5 F  q1 W
  41.         }6 h, @, S  b- l& D5 Y1 F
  42.         else
    7 F7 N4 F- t6 c$ [8 S
  43.         {
    : P, \2 l: a+ L- P5 l* c/ e% S
  44.                 uc1601("数据库连接成功", 0);: D% C: S2 i8 @1 C9 o6 k
  45.                 return true;
    % @+ x- f' B( [6 [# ^
  46.         }, l( ^; N( O2 X, Z4 Q
  47.        
    , W. s+ p, x' H; v
  48. }
      E& v8 }7 D% B) Y- S
复制代码
) e& b' @; C2 i( L/ F: q
1 T* r# I: m0 l- o% T2 c) U

" t6 ^. }. K, y" M9 `3 RMySQL 链接数据库的方法,出现乱码,注意设置字符集& K6 U8 n4 Y  I* K1 @" _: d' o2 ~. v4 ?
11.png
3 N3 y: ^! }/ y& ~8 }0 _, M  ?2 q' Q  {
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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