查看: 1974|回复: 0

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

[复制链接]

4

主题

3

回帖

48

积分

管理员

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

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

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

×
  1. % D. s/ |  [0 m# z
  2. MySQLConnect::MySQLConnect()
    9 `' ~" Q2 ~" q1 h
  3. {8 `. Y) ~3 e; R

  4. + i. b7 A- B9 `
  5.         if (mysql_library_init(0, nullptr, nullptr))" P  ]7 |. `5 _" k2 m
  6.         {. X- C$ O9 E2 k: f* n2 A2 v% F
  7.                 uc1601("CAPI初始化失败", 1);
    # @: B) ?5 |# J  Q
  8.         }
    8 y0 N, {/ x8 a4 m. i6 v" l. `& a
  9.         if (mysql_init(&mysql) == nullptr)
    / t% a  K/ ^7 `7 _$ u- j: Z- D
  10.         {
    - h& M) o: E" _  M
  11.                 uc1601("初始化数据库变量失败", 1);7 H/ ]3 y5 j: [# Q( z' a7 T% w% Z
  12. 9 L9 X. p9 R; ~% r+ [' {
  13.         }
    ) m/ J5 r+ s' N
  14.         if (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))
    # W. s- l- x2 T9 _
  15.         {
    - F8 Z( k+ H9 U+ a: U' o; S& _1 Q
  16.                 uc1601("设置连接选项失败", 1);
    3 w+ ~# v+ K; V- d
  17.         }$ {* |( \: z5 y% M  T& }
  18. }  k6 e/ L4 E5 O
  19. / W9 Z' @9 ^5 ~' W4 o9 \
  20. bool MySQLConnect::ConnectDatabase()$ W* o; v% F: t
  21. {2 ~; z7 P* c9 s# z* y" r1 u
  22.         //初始化mysql+ d, A0 F. C2 ?& O8 K7 N$ P6 \

  23. % G! r( h" e6 I4 z4 ~- p3 S- Y/ D- |
  24.         mysql_init(&mysql);   
    ; j& M* o  c7 }% g0 Z

  25. 1 q! j0 F( I$ b5 _& |
  26.         //这个非常重要,否则打印出现乱码+ X5 }' [: x1 W( f- r. I% ?
  27.         if (!mysql_set_character_set(&mysql, "gbk"))
    " f( |7 n% q4 |- ^: K: _
  28.         {1 d5 B( M0 N! W& y
  29.                 char msg[256];
      V* J; `/ Q9 }
  30.                 sprintf_s(msg, "Charset for the connection : %s\n", mysql_character_set_name(&mysql));- K( \! V& G3 J
  31.                 uc1601(msg, 0);5 z% z5 c; D4 S$ X$ j5 _
  32.         }; A- {2 y1 b: Q+ d
  33.         ' ~( D  v% d/ s6 ~" k1 v
  34.         //连接mysql,数据库
    3 |) w+ O2 r; I9 R) g
  35.         if (!(mysql_real_connect(&mysql,MYSQL_HOSTNAME , MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DBNAME, MYSQL_DBPORT, NULL, 0))) % J7 x' ?+ T4 E7 j
  36.         {
    " D5 {+ K# y' F0 b9 @: y
  37.                 char msg[1024];
    ' H% j. J: s, A
  38.                 sprintf(msg,"Error connecting to database:%s\n", mysql_error(&mysql));
    9 y# T6 b( O& S' p
  39.                 uc1601(msg, 1);9 U2 ]" s& R' g7 Y2 f5 Q: l! v3 i6 f
  40.                 return false;
    . z8 l  A/ v4 M, S: @$ ~
  41.         }
    ' o( W; y. t; q. j, X
  42.         else
    ; R$ p7 ^, u2 @' x6 h
  43.         {* e- Q* E9 A/ ]( j+ \
  44.                 uc1601("数据库连接成功", 0);
    # x4 o8 |% A  o/ x7 q6 [, u- r
  45.                 return true;( w- P8 R! M8 X' O$ j1 C
  46.         }0 L. {- b. o% [% |1 M6 T. s
  47.        
    " l& G2 O- g# Z5 S! p" i5 O
  48. }/ r5 t# Z. [0 |1 w9 D9 W
复制代码

0 K( k% ~: F5 @' B+ c) M1 }- Y, ?5 x* J/ o: {* g3 X; N. ~

3 ~4 T+ [$ F, w5 TMySQL 链接数据库的方法,出现乱码,注意设置字符集% ~0 i3 J3 c3 Z8 B3 r% g% f) p
11.png
! p. m5 }1 S) A
, q# m/ W8 \" Z/ m  q) `' P  |6 M7 T
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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