- 环境:visual studio
- 前提:已经安装 mysql,并且成功连接,知道用户名(通常是root)、密码
23/5/24 更新:一个基于 c 语言、mysql 的小型示例学生管理系统
- 资源路径:文档资源
- 项目代码:代码仓库
一、配置环境
- 创建 控制台应用程序(空项目)
- 新建项,创建conn.c 源文件
- 右击项目名称,点击属性
- 找到 VC++ ,修改:包含目录和库目录 分别添加 mysql安装路径下的include和lib文件夹
- 复制lib(mysql安装目录) 文件夹中的 libmysql.dll到 当前 conn.c 文件所在同级文件夹下
- 将项目平台改为 x64
二、执行代码
复制 代码,修改信息,调试
代码:
#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;
}
代码优化:
#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数据库(二)