C++ *** 作mysql8.0数据库,增删改查

C++  *** 作mysql8.0数据库,增删改查,第1张

1.创建项目后首先在【配置属性】 【C/C++】【常规】下添加包含目录mysql8.0的include文件夹

2.然后在【连接器】【常规】下面添加附加目录,选择mysql下面的lib目录

详细代码如下

#pragma once
#include 
#include 
#include 
#include 
#include "mysql.h" 
#include 
#include 
#include 
using namespace std;


class MySQLDB
{

public:

	inline BOOL InitSQL(const string& strHost, const string& strUserName, const string& strPwd, const string& strDataBase, const LONG lPort);
	MYSQL_RES* GetSQLRs(const string& strSql);
	BOOL DoSql(const string& strSql);
	void Close_MySQLDB();

public:
	MYSQL myConnect;
	MYSQL_RES* rs;

};


BOOL MySQLDB::InitSQL(const string& strHost, const string& strUserName, const string& strPwd, const string& strDataBase, const LONG lPort)
{
	mysql_init(&myConnect);
	if (mysql_real_connect(&myConnect, strHost.c_str(), strUserName.c_str(), strPwd.c_str(), strDataBase.c_str(), lPort, NULL, 0)) {
		mysql_query(&myConnect, "SET NAMES GBK");
		return TRUE;
	}
	else {
		return FALSE;
	}
}

MYSQL_RES* MySQLDB::GetSQLRs(const string& strSql)
{
	int res = mysql_query(&myConnect, strSql.c_str());
	if (!res) {
		rs = mysql_store_result(&myConnect);
		if (rs == NULL) {
			return NULL;
		}
		else
		{
			return rs;
		}

		return NULL;
	}
	else {
		return NULL;
	}
}

BOOL MySQLDB::DoSql(const string& strSql)
{
	if (!mysql_query(&myConnect, strSql.c_str())) {
		return TRUE;
	}
	else {
		return FALSE;
	}
}

void MySQLDB::Close_MySQLDB()
{
	if (rs != NULL) mysql_free_result(rs);//释放结果资源
	mysql_close(&myConnect);//断开连接
}
#include 
#include 
#include "stdio.h"
#include "MySQLDB.h"
using namespace std;

int main()
{
    MySQLDB sql;
    MYSQL_ROW row;
    unsigned int t;
    int count = 0;
   
    

    if (sql.InitSQL("127.0.0.1", "hx", "127.0.01", "taobao", 3306)) 
    {
        MYSQL_RES*  result = sql.GetSqlInfo("select * from bl limit 30");
        while (row = mysql_fetch_row(result))
        {
          for (t = 0; t < mysql_num_fields(result); t++) {
              printf("%s  | ", row[t]);
          }
          string index = to_string(count);
          std::cout << "\n-------------------------------------------------------------"+index << endl;
        
          count++;
        }

        sql.DoSql("insert into bl(ID ,name,sex,age,st) values (null, '9999','男','25','牛牛牛')");
        sql.Close_MySQLDB();
    }
    else {
        cout << "sql inited failed" << endl;
    }
}

执行结果如下

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存