PLM之家PLMHome-国产软件践行者

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

[复制链接]

2023-3-6 11:42:58 1493 0

admin 发表于 2023-3-6 11:42:58 |阅读模式

admin 楼主

2023-3-6 11:42:58

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

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

x

  1. % ?6 H) i+ w+ I, J( [2 [
  2. MySQLConnect::MySQLConnect()  ~/ M3 u* X  M, v& y1 Z- l
  3. {
    1 r. s1 E- V# S& M( ~

  4. 8 P# [% k6 h# R* f- c/ {. v
  5.         if (mysql_library_init(0, nullptr, nullptr)), _; P7 ?$ J. N4 L
  6.         {$ c7 [" i% ]2 P* l. w7 {4 Z
  7.                 uc1601("CAPI初始化失败", 1);+ f4 Q* H6 B& Q
  8.         }
    ) o; G# g9 I0 e: ]+ I/ P
  9.         if (mysql_init(&mysql) == nullptr)
    & x( _& i8 i% s' E
  10.         {; p  u; y* V/ x( S' x- G* t
  11.                 uc1601("初始化数据库变量失败", 1);4 _5 j1 n- n9 A- X) [8 z' I+ s
  12. - O1 L. @. H+ ^- n  _
  13.         }0 ], y. ~( H& a- ~' X7 i
  14.         if (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))2 s2 o* c; N3 D' R" [# [% l
  15.         {
    - Y* Q- J  c9 v2 d6 f
  16.                 uc1601("设置连接选项失败", 1);
    / s: H- @& T  q+ B4 {
  17.         }, R4 j2 t0 j6 ]0 T$ K
  18. }- S  L4 ]; L6 v% s8 b1 k9 z
  19. 9 T& }7 r, e& s6 l- j7 _- {
  20. bool MySQLConnect::ConnectDatabase()% G' {+ V8 X3 y0 k  v+ w2 @
  21. {
    % }: t$ U9 t; f' C  C
  22.         //初始化mysql3 W* o5 U  N5 L

  23. 9 Z) n; s- W8 f1 `5 b4 ~3 n4 ^' o4 [
  24.         mysql_init(&mysql);   
    1 N: M) I' c+ X" @

  25. ! y+ |5 J9 j5 Z* T3 `+ Y
  26.         //这个非常重要,否则打印出现乱码9 d9 h: F  a9 j1 [7 j/ ~$ b) P
  27.         if (!mysql_set_character_set(&mysql, "gbk"))
    7 ?6 \$ `" [; C- x
  28.         {
    # C5 K; l! ?0 S: h
  29.                 char msg[256];
    % M. ^) N0 U7 T. `0 Y( @. C
  30.                 sprintf_s(msg, "Charset for the connection : %s\n", mysql_character_set_name(&mysql));$ V/ A) v6 Z# N0 h5 C$ |4 h
  31.                 uc1601(msg, 0);# j4 P% T9 ^3 |2 t# M, i( P
  32.         }' H0 J  Z$ e* C* X
  33.         ) W. O# t/ [4 y* C4 o- Q3 m0 z
  34.         //连接mysql,数据库
    6 z( Z* L: H+ g$ _$ X9 p: D
  35.         if (!(mysql_real_connect(&mysql,MYSQL_HOSTNAME , MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DBNAME, MYSQL_DBPORT, NULL, 0)))
    , ^) S: u8 J, m0 M) a
  36.         {
    7 E* G* H9 d+ ]. v
  37.                 char msg[1024];
    & J: o7 T4 k- F9 m/ h  j/ f5 N
  38.                 sprintf(msg,"Error connecting to database:%s\n", mysql_error(&mysql));2 a. T, Q0 t8 j9 [7 x/ G9 B3 Y
  39.                 uc1601(msg, 1);
    3 N: s5 P: X- n/ v" @+ P6 w
  40.                 return false;
    + i/ W0 v6 e6 o# q
  41.         }4 t' H3 C: ?' l$ Q
  42.         else: _+ m6 L2 b2 F; k( S
  43.         {
    / N4 s* m" R" ?- A6 {2 m. z' K
  44.                 uc1601("数据库连接成功", 0);8 ]+ ?9 o; h. h" R1 A, h
  45.                 return true;
    & `- M# H: w% j: h# t& ^2 x5 j
  46.         }" K3 D2 A# H' h  T3 d$ H
  47.         6 w8 R7 D3 N, z' k8 k* p/ `
  48. }4 R/ W" b* r2 E4 f: t- n4 L
复制代码
0 a: |2 |. @+ Z
$ A$ y, b( E. }9 X2 m1 K9 z

5 C) d3 }7 H( }- u% A7 OMySQL 链接数据库的方法,出现乱码,注意设置字符集
5 _5 y" ]: e1 y2 g5 O$ s- l) D% g 11.png
- i7 X3 _& |" l
1 T6 O$ M4 ~0 \, u* U3 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了