C语言连接mysql数据库(一)

  • 环境:vs2015
  • 前提:已经安装 mysql,并且成功连接,知道用户名(通常是root)、密码

一、配置环境

  1. 创建 控制台应用程序(空项目)
  2. 新建项,创建conn.c 源文件
  3. 右击项目名称,点击属性
  4. 找到 VC++ ,修改:包含目录和库目录 分别添加 mysql安装路径下的include和lib文件夹
  5. 复制lib(mysql安装目录) 文件夹中的 libmysql.dll到 当前 conn.c 文件所在同级文件夹下
  6. 将项目平台改为 x64

step4
step5
step6

二、执行代码

复制 代码,修改信息,调试
代码:

#include <stdio.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")

int main(void)
{
    
    
	MYSQL mysql;    //一个数据库结构体
	MYSQL_RES* res; //一个结果集结构体
	MYSQL_ROW row;  //char** 二维数组,存放一条条记录
	
	//初始化数据库
	mysql_init(&mysql);
	//设置编码方式
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
	//连接数据库
	mysql_real_connect(&mysql, "localhost", "root", "***", "java", 3306, NULL, 0);
	//查询数据
	mysql_query(&mysql, "select * from person");
	//获取结果集
	res = mysql_store_result(&mysql);
	//显示数据
	printf("id\t姓名\t地址\t电话\t年龄\n");
	while (row = mysql_fetch_row(res))
	{
    
    
		// 根据数据库中的属性列 先后顺序打印字符串
		printf("%s\t", row[0]);
		printf("%s\t", row[1]);
		printf("%s\t", row[2]);
		printf("%s\t", row[3]);
		printf("%s\n", row[4]);
	}
	//释放结果集
	mysql_free_result(res);
	//关闭数据库
	mysql_close(&mysql);
	system("pause");
	return 0;
}

output
代码优化:

#include<stdio.h>
#include<mysql.h>
#pragma comment(lib,"libmysql.lib")

int main()
{
    
    
	MYSQL mysql;
	mysql_init(&mysql);

	if (!mysql_real_connect(&mysql,
		"localhost", "root", "***", "db01", 3306, NULL, 0)) {
    
    
		printf("数据库 连接失败!");
		system("pause");
		return 0;
	}

	const char * sql = "select * from breakfast where spam=4";
	// 只进行查询,不存储数据
	if (mysql_real_query(&mysql, sql, 37)) {
    
    
		printf("查询期间出错!");
		system("pause");
		return 0;
	}

	MYSQL_RES *sr; // 结果集,记录查询结果
	MYSQL_ROW row;
	sr = mysql_store_result(&mysql);
	
	if (sr->row_count == 0) {
    
    
		printf("未查询到结果!\n");
	}

	while (row = mysql_fetch_row(sr)) {
    
    
		printf("%s\t", row[0]);
		printf("%s\t", row[1]);
		printf("%s\t", row[2]);
		printf("%s\t", row[3]);
		printf("%s\n", row[4]);
	}

	mysql_free_result(sr);
	mysql_close(&mysql);
	system("pause");
}

下一篇 :C语言连接mysql数据库(二)

猜你喜欢

转载自blog.csdn.net/qq_43341057/article/details/104885258