文章目录
- 一、在操作之间首先安装软件
- 二、VS 2017环境配置
- 三、数据库操作代码
一、在操作之间首先安装软件
1、Windows下安装MySQL数据库 2、安装Visual Studio 2017
二、VS 2017环境配置
- 点击项目->项目属性,操作如图:
- 2、选择C/C++,在常规的附加包含目录添加mysql安装地址中include文件的地址,如我的地址是
C:\Program Files\MySQL\MySQL Server 5.7\include
,如图: - 选择链接器,在常规中附加目录中添加mysql安装地址lib文件的地址,如我的地址是
C:\Program Files\MySQL\MySQL Server 5.7\lib
,如图: - 点击链接器中的输入,在附加依赖项中添加libmysql.lib,如图:
- 将mysql安装目录
C:\Program Files\MySQL\MySQL Server 5.7\lib
下的libmysql.dll复制到自己所建立的项目的同名文件夹下中,如图: - 将运行的平台给为x64为,如图:
三、数据库操作代码
说明:这里我使用的是远程的数据库来进行连接
#include <mysql.h>
#include <stdio.h>
int main()
{
int res;
MYSQL conn;
//初始化MySQL连接句柄
mysql_init(&conn);
if (&conn != NULL)
{
printf("mysql句柄初始化成功\n");
}
else
{
printf("Err in init\n");
return -1;
}
//连接mysql数据库
if (mysql_real_connect
(&conn, //MySQL句柄
"192.168.37.134", //参数地址,本地数据库使用localhost
"root", //数据库名
"123456", //数据库密码
"db_test", //数据库名
0, //数据库端口,0表示默认(即3306)
NULL, //如果unix_socket不是NULL,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型
0)) //通常是0
{
printf("数据库连接成功\n");
}
else
{
printf("数据库连接失败\n");
mysql_close(&conn); //关闭连接
return -1;
}
//数据的插入
res = mysql_query(&conn, "insert into testTB3 values(5,'aa')"); //MySQL句柄 SQL语句
if (res == 0)
{
printf("插入成功\n");
}
else
{
printf("插入失败\n");
mysql_close(&conn);
return -1;
}
//数据的删除
res = mysql_query(&conn, "delete from testTB3 where name='aa'");
if (res == 0)
{
printf("删除成功\n");
}
else
{
printf("删除失败\n");
mysql_close(&conn);
return -1;
}
//数据的查询
res = mysql_query(&conn, "select * from testTB3");
if (res == 0)
{
printf("查询成功\n");
}
else
{
printf("查询失败\n");
mysql_close(&conn);
return -1;
}
//解析查询结果
MYSQL_RES *res_ptr;//指向结果集索引的指针
res_ptr = mysql_store_result(&conn);//检索完整的结果集当当前程序
if (res_ptr != NULL)
{
//打印出结果集中一共有多少行记录
unsigned long Row = mysql_num_rows(res_ptr);//结果集中的行数
printf("有%lu行记录\n", Row);
}
else
{
printf("结果集操作保留出错\n");
mysql_close(&conn);
return -1;
}
//取出字段名
MYSQL_FIELD *fd;
int i = 0;
while (fd = mysql_fetch_field(res_ptr))
{
printf("%s\t", fd->name);
i++;
}
putchar('\n');
//取出所有内容
MYSQL_ROW sqlrow;
int j;
while (sqlrow = mysql_fetch_row(res_ptr))
{
//将每一行的内容分割成每一个记录
for (j = 0; j < i; j++)
{
printf("%s\t", sqlrow[j]);
}
putchar('\n');
}
//释放结果集索引所在内存
mysql_free_result(res_ptr);
mysql_close(&conn);
return 0;
}
运行结果,如图所示: