zoukankan      html  css  js  c++  java
  • c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)

    我的安装环境:

    (1)vs2013(32位版) (vs2013只有32位的 没有64位的,但是它可以编译出64位的程序)  ;

    (2)mysql-5.7.15(64位)

    vs2013中的设置(按步骤来,顺序不要乱)

    (1)首先在vs2013中新建一个控制台程序 MysqlTest(或者选择一个已有的项目)

    (2)设置项目平台为64位平台:

    1)右击项目,选择属性

    弹出一个对话框,点右上角的配置管理器,如图:

    接着点 平台下面的那个下拉选项 ,然后 选  新建   如图:

    接着选  x64 ,然后点确定:

    都选X64:

    vs中也要选x64:

    完事。

    2)设置项目 包含目录 和 库目录

    设置项目属性,先设置包含目录: 

     出来如下对话框 接着点添加:

    接着:

    选择的目录是 mysql 安装路径下的 include 目录(我的路径是:D:Office Softwaremysql-5.7.15-winx64):

    点确定:

    接着设置 库目录:

    同样新建:

    设置路径:

    选择lib目录:

    接着:

     3)把mysql安装目录下的 lib文件夹 下的 libmysql.dll添加到项目目录中:

    复制到项目根目录中:

    MySQL设置:

    需要把mysql的字符集设置成utf8格式,查看mysql字符集的命令是:show variables like "character%";(需要先从cmd登陆到mysql);

    mysql设置默认字符集 不会设置的同学直接百度自行解决,实在不会的可以加我QQ1306348864 咨询本人!记得说明来意

    设置完效果如下图:

     开始写代码

    // MysqlTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"  //这个是创建项目时自己带的,不用管它
    #include <WinSock2.h> //要写
    #include "mysql.h"  //要写 , 使用mysql API时用
    #include <iostream> 
    
    
    #pragma comment(lib,"wsock32.lib")  //把这两个lib文件加进来
    #pragma comment(lib,"libmysql.lib")
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        MYSQL mysql;             //定义一个MYSQL类型的变量mysql
        MYSQL_RES *result;       //查询结果集
        MYSQL_ROW row;           //一行纪录
        mysql_init(&mysql);      //初始化mysql
    
        //连接mysql 该函数的参数含义分别是:(接受函数返回的数据库的指针,主机名,连接数据库时用的用户名,数据库密码,要连接哪个数据库,端口,NULL,标志)
        mysql_real_connect(&mysql, "localhost", "root", "wxl1306348864", "c", 3306, NULL, 0);
        
        mysql_set_character_set(&mysql, "gbk");  //设置连接字符集 可以是utf8,可以是gbk,  这里用utf8的时候中文乱码,但gbk么事,不知为啥
        char *sql = "select * from user";        //SQL语句 (连接的数据库名:c ,表:user)
        mysql_query(&mysql, sql);                //查询
        result = mysql_store_result(&mysql);     //取回查询结果
    
        //输出查询结果
        while ((row = mysql_fetch_row(result)) != NULL)
        {
            cout << row[1] << endl;    //row[0]表示第一列,row[1]表示第二列,依次类推..
        }
        system("pause");
        return 0;
    }

    执行结果如下:

    我的数据库:

    人生如修仙,岂是一日间。何时登临顶,上善若水前。
  • 相关阅读:
    【刷题】洛谷 P1501 [国家集训队]Tree II
    【刷题】BZOJ 2816 [ZJOI2012]网络
    【刷题】BZOJ 2049 [Sdoi2008]Cave 洞穴勘测
    【刷题】BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
    【刷题】洛谷 P3690 【模板】Link Cut Tree (动态树)
    【刷题】BZOJ 2190 [SDOI2008]仪仗队
    【刷题】BZOJ 2005 [Noi2010]能量采集
    【刷题】BZOJ 3262 [HNOI2008]GT考试
    (74)Wangdao.com第十三天_Object 对象_属性描述对象
    (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  • 原文地址:https://www.cnblogs.com/f-society/p/6280163.html
Copyright © 2011-2022 走看看