查看: 2117|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

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

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

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

×
  1. . X; p+ q7 g3 @* k8 V
  2. MySQLConnect::MySQLConnect()9 u' R! F5 I) k9 X, S, Y5 i2 Z
  3. {
    ! c0 n- K; N' ~& Y8 ~; M9 r. `4 R

  4. 0 j. s: ]; M7 g2 S* h
  5.         if (mysql_library_init(0, nullptr, nullptr))
    % G7 [8 ^- V+ z3 }; F2 N
  6.         {
    / R# u# H! e! T: q6 o$ r% x
  7.                 uc1601("CAPI初始化失败", 1);3 T4 ^' M3 n1 m: ~
  8.         }. \' i9 c/ a) K& o, y9 L: S7 K
  9.         if (mysql_init(&mysql) == nullptr)
    0 \3 z' K) ]1 P  H  r
  10.         {
    / @  O: v+ X  f0 {
  11.                 uc1601("初始化数据库变量失败", 1);
    * H" Z! ]  p% S+ V. x
  12. 2 k+ ~8 J1 [) }- ?/ z- y+ N2 t
  13.         }( N5 L' y5 v% F2 p# t  X7 W2 u
  14.         if (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))6 R3 G: `1 s7 c7 N
  15.         {( \" b" v7 L0 E5 o- \2 u
  16.                 uc1601("设置连接选项失败", 1);
    0 R. V2 n6 B3 s- E" V+ P' a/ f
  17.         }
    ; H# i& \- L+ g) I+ P) R) X9 j5 a
  18. }0 k! r& v# D( p, j2 V. ~
  19. & V1 Y) m6 V% D6 g+ a9 n0 |; s- z& e
  20. bool MySQLConnect::ConnectDatabase()
    / i! b8 T, `4 S0 [7 N
  21. {
    / `1 ]' |, t- F5 t) f# h
  22.         //初始化mysql
    , ^1 ]5 F/ A; S+ a. B' t' |
  23. ( U- O/ J* z. O8 [6 G
  24.         mysql_init(&mysql);   
    - P; z' M# B7 ^  T: m( j& A  }0 H" v

  25. " I' \* w+ d" a9 o- ?- A
  26.         //这个非常重要,否则打印出现乱码
    . W- H: x, \4 g1 c3 n) E- S1 l+ X: m9 J$ O
  27.         if (!mysql_set_character_set(&mysql, "gbk")): R" |/ _! c4 ~- R2 W# ^) U) C
  28.         {+ {1 {7 `$ D& W  `
  29.                 char msg[256];
    5 k/ Q1 G/ a  ]* }7 x5 T
  30.                 sprintf_s(msg, "Charset for the connection : %s\n", mysql_character_set_name(&mysql));
    + W7 a% [( W! O" s$ A4 o* P8 t
  31.                 uc1601(msg, 0);; r3 c- R5 N1 H" G  `
  32.         }$ R/ g( J/ \: Z. D
  33.         + T. C* T3 N7 b# H" B$ c
  34.         //连接mysql,数据库
    ' B! N( @' z  I; k
  35.         if (!(mysql_real_connect(&mysql,MYSQL_HOSTNAME , MYSQL_USERNAME,MYSQL_PASSWORD,MYSQL_DBNAME, MYSQL_DBPORT, NULL, 0)))
    / f3 g' W3 f& R
  36.         {  \, J& d6 ^7 V/ T* E9 I2 w
  37.                 char msg[1024];
    + f  i% z. B! s6 }! q
  38.                 sprintf(msg,"Error connecting to database:%s\n", mysql_error(&mysql));- [8 q# z' D6 D3 u. K) s+ D8 N% @
  39.                 uc1601(msg, 1);
    ' s3 `+ C/ m( R, w- g" q# F, o- {
  40.                 return false;
    & }0 c, X3 v* x* `2 T1 Z8 _
  41.         }- Z  W9 z$ m  N& q) v
  42.         else
    0 q3 k: f- A6 I% U5 ?, _6 A: f, h
  43.         {
    * B( _# L& S+ o* j
  44.                 uc1601("数据库连接成功", 0);
    2 ^5 G1 _! ?7 ~* R) u
  45.                 return true;' ]6 K  Z* p* W5 |% b% {# ]( H
  46.         }6 H. O, i  k2 K9 Q! G; V: k) u
  47.         * n, a3 n2 B$ B. y. z& E0 [
  48. }
    ! v2 F* v9 c4 q
复制代码

& w. f) L% N1 b/ \. y0 `* ^$ N" O9 ^; S) }6 S
2 s! i4 Z! w; c% s7 h7 L6 m
MySQL 链接数据库的方法,出现乱码,注意设置字符集# R* j2 Y8 h% v' Q( O. I
11.png
! c4 Y# [/ ?+ _& l( B: a( K  \" U( ?/ Q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

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

本版积分规则

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