• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    C++连接使用MySQL的方法

    C++连接使用MySQL,供大家参考,具体内容如下

    定义MySQLCon类

    class MySQLCon
    {
     MYSQL mysql;
    public:
     int errornum;
     string errortext;
    public:
     //初始化
     MySQLCon();
     //关闭数据库
     ~MySQLCon();
     //链接数据库
     bool OpenConn(const char* host,const char* username,const char* pwd,const char* dbName,unsigned port=0);
     void GetErrorText();//获取错误文本
     void Close();//关闭数据库
     bool ExecuteSQL(const char* sql);//使用SQL语句,无法接收数据
     bool QureySQL(const char* sql, vectorvectorstring>> resultSet);//使用SQL语句并接收数据(select语句)
    };

    初始化操作

    MySQLCon::MySQLCon()
    {
     if (mysql_library_init(0, nullptr, nullptr)) 
     {
     cout  "CAPI初始化失败"  std::endl;
     getchar();
     exit(1);
     }
     if (mysql_init(mysql)==nullptr)
     {
     cout  "初始化数据库变量失败"  std::endl;
     getchar();
     exit(1);
     }
     if (mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk"))
     {
     cout  "设置连接选项失败"  std::endl;
     getchar();
     exit(1);
     }
    }

    连接到MySQL服务器

    //参数分别为主机,用户名,密码,数据库名,端口号
    bool MySQLCon::OpenConn(const char* host, const char* username, const char* pwd, const char* dbName, unsigned port)
    {
     //连接数据库
     if (mysql_real_connect(mysql, host, username, pwd, dbName, port, nullptr, 0)==nullptr)
     {
     cout  "连接到MySQL服务器失败"  std::endl;
     //获取错误文本
     GetErrorText();
     exit(1);
     return false;
     }
     return true;
     
    }

    获取MySQL错误信息

    void MySQLCon::GetErrorText()
    {
     //获取错误代码
     errornum = mysql_errno(mysql);
     //获取错误文本
     errortext = mysql_error(mysql);
     //打印错误代码
     cout  "error num: "  errornum  std::endl;
     //打印错误文本
     cout  "error text: "  errortext  std::endl;
     getchar();
    }

    C++中使用SQL语句

    bool MySQLCon::ExecuteSQL(const char* sql)
    {
     //使用SQL语句但无法接收数据
     if (mysql_real_query(mysql, sql, strlen(sql)))
     {
     GetErrorText();
     return false;
     }
     return true;
    }
    bool MySQLCon::QureySQL(const char* sql, vectorvectorstring>> resultSet)
    {
     //使用SQL语句并接收数据至vector容器
     if (mysql_real_query(mysql, sql, strlen(sql)))
     {
     GetErrorText();
     return false;
     }
     //创建一个MYSQL结果集
     MYSQL_RES* result = mysql_store_result(mysql);
     //获取行和列的总数
     unsigned int rows = mysql_num_rows(result);
     unsigned int cols = mysql_num_fields(result);
     //用于记录结果集中的一条数据
     MYSQL_ROW row;
     while (row = mysql_fetch_row(result))
     {
     //创建一个vector容器用于储存row中的数据
     vectorstring> lineDate;
     for (int i = 0; i  cols; i++)
     {
     if (row[i])
     {
     //将row中每一列的数据存入lineDate中
     lineDate.push_back(row[i]);
     }
     else
     {
     lineDate.push_back("");
     }
     }
     //在resultSet中存入整行数据
     resultSet.push_back(lineDate);
     }
     //释放结果集
     mysql_free_result(result);
     return true;
    }

    关闭数据库

    void MySQLCon::Close()
    {
     mysql_close(mysql);
    }
    MySQLCon::~MySQLCon()
    {
     Close();
     mysql_library_end();
    }

    示例主函数

    int main()
    {
     MySQLCon c_apiconn;
     c_apiconn.OpenConn("127.0.0.1", "root", "136119", "fancy");
     string sql = "use fancy;";
     vectorvectorstring>> data;
     c_apiconn.ExecuteSQL(sql.c_str());
     sql = "select * from fancy.info;";
     c_apiconn.QureySQL(sql.c_str(), data);
     for (int i = 0; i  data.size(); i++)
     {
     for (int j = 0; j  data[i].size(); j++)
     {
     cout  data[i][j]  "\t";
     }
     cout  endl;
     }
     return 0;
    }

    输出内容

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • C++连接mysql数据库的两种方法小结
    • Eclipse中C++连接mysql数据库
    • C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法
    • C/C++ 连接MySql数据库的方法
    • C++连接mysql的方法(直接调用C-API)
    • C++利用MySQL API连接和操作数据库实例详解
    • c++连接mysql5.6的出错问题总结
    • C++与mysql连接遇到的问题汇总
    • C++用mysql自带的头文件连接数据库
    • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)
    上一篇:MySQL 表的垂直拆分和水平拆分
    下一篇:怎样安全地关闭MySQL实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    C++连接使用MySQL的方法 C++,连接,使用,MySQL,的,方法,