Visual Studio C++连接MySQL

Visual Studio C++连接MySQL

    • VS项目属性配置
    • 连接数据库
    • 对数据库进行相关操作

VS项目属性配置

Visual Studio C++连接MySQL_第1张图片
点击属性也就是最底下那一栏
Visual Studio C++连接MySQL_第2张图片
在包含目录中加入MySQL下的include文件夹路径,在库目录中加入MySQL下的bin文件夹路径。
还有一步链接器->输入->附加依赖项中加libmysql.lib
Visual Studio C++连接MySQL_第3张图片
现在项目环境配置完成。

连接数据库

	MYSQL mysql;
	mysql_init(&mysql);//初始化
	const char* host = "127.0.0.1";
	const char* user = "root";
	const char* pass = "passwd";//此处输入本地MySQL密码
	const char* db = "mydb"; //需要连接的数据库名称
	if (!mysql_real_connect(&mysql, host, user, pass, db, 3306, 0, 0))//3306是默认端口号
	{
		cout << "MySQL connect failed!\n" << mysql_error(&mysql) << endl;
	}
	else
	{
		cout << "Connect success!" << endl;
	}

对数据库进行相关操作

	string sql = "select col_name from table_name";//sql是需要执行的SQL语句
	try
	{
		if (mysql_query(&mysql, sql.c_str()))
		{
			string err_string = mysql_error(&mysql);

			if (err_string.empty())
				throw string("MYSQL query  error!");
			else
				throw err_string;
		}
		cout << "MySQL:" << sql << endl;
		MYSQL_RES* result = mysql_store_result(&mysql);
		if (!result)
			throw string("MySQL not result!");

		//获取字段数量
		int num_fields = mysql_num_fields(result);
		if (num_fields == 0)
			throw string("MySQL fields number is 0!");

		//获取字段名
		MYSQL_FIELD* fields = mysql_fetch_fields(result);
		if (!fields)
			throw string("MySQL fields fetch is error!");

		for (int i = 0; i < num_fields; i++)//输出列名
		{
			if (i != 0)
				cout << "\t";
			cout << fields[i].name;
		}
		cout << endl;

		while (MYSQL_ROW row = mysql_fetch_row(result))//获取整行数据内容
		{
			//输出每行的数据
			for (int i = 0; i < num_fields; ++i)
			{
				if (row[i] == NULL)
					cout << "NULL";
				else
				{
					if (i != 0)
						cout << "\t";
					cout << row[i];
				}
			}
			cout << endl;
		}
		mysql_free_result(result);

		cout << "MySQL is OK." << endl;
	}
	catch (string& error_msg)
	{
		cout << error_msg << endl;
	}

你可能感兴趣的:(Visual Studio C++连接MySQL)