牛骨文教育服务平台(让学习变的简单)
博文笔记

[VC++] MySQL VC++ 调用方法

创建时间:2014-08-20 投稿人: 浏览次数:1057

一、准备工作

1、库文件

MySQL 安装目录的 lib 文件夹中 libmysql.lib 和 libmysql.dll 是需要的库文件,将它们复制到 VC 项目目录中,并在 VC 项目设置中使用 libmysql.lib 。

2、头文件

MySQL 安装目录中有 include 文件夹,包含它到 VC 项目中。

二、开始编程

#include <stdio.h>
#include <mysql.h>

void main()
{
	// 需要执行的 SQL 语句容器
	char strSQL[256] = { 0 };

	// 初始化数据库连接句柄
	MYSQL mysql;
	mysql_init(&mysql);

	// 连接数据库
	char* host = "localhost";// 欲连接的主机名,可以是远程IP地址
	char* user = "root";// 用户名,远程连接时不能用root
	char* pwd = "123456";// 密码
	char* dbname = "mydb";// 数据库名称
	int port = 3306;// 端口号

	if (!mysql_real_connect(&mysql, host, user, pwd, dbname, port, NULL, 0))
	{
		printf("%s
", mysql_error(&mysql));
		printf("连接失败!
");
		return;
	}

	// 查询
	char* tbname = "mytb";
	sprintf(strSQL, "select * from %s", tbname);
	if (mysql_real_query(&mysql, strSQL, strlen(strSQL)))
	{
		printf("%s
", mysql_error(&mysql));
		printf("读取失败!
");
		mysql_close(&mysql);
		return;
	}

	// 取得结果
	MYSQL_RES* result;
	if (!(result = mysql_use_result(&mysql)))
	{
		printf("%s
", mysql_error(&mysql));
		printf("取得结果失败!
");
		mysql_close(&mysql);
		return;
	}

	// 得到每行内容
	MYSQL_ROW row;
	int num = mysql_num_fields(result);// 有多少列
	while (row = mysql_fetch_row(result))
	{
		for (int i = 0; i < num; ++i)
			printf("%s	", row[i]);
		printf("
");
	}

	// 释放结果
	mysql_free_result(result);

	// 关闭连接
	mysql_close(&mysql);

	// 结束
	system("Pause");
}



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。