C/C++访问MySQL数据库
VS2019配置
-
打开mysql的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server 8.0,确认 lib 目录和include 目录是否存在。
-
打开VS2019,新建一个空工程,控制台应用程序即可,注意:解决方案平台选择 X64
-
右击工程名,打开属性页
-
打开VC++目录,在包含目录中,将mysql安装文件中的include文件的路径添加到这里
-
打开VC++目录,在库目录中将mysql文件中的lib文件路径添加进来
-
在属性页的链接器中,点击“输入”,将mysql安装文件夹中lib目录下的libmysql.lib文件加到“附加依赖项”中,注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。
-
把mysql安装目录里的lib\libmysql.dll复制到c:\windows\system32下
-
启动mysql 80, 将代码中连接数据库的用户名和密码改成自己的设定,顺利获取到student 表中的结果即表示连接成功!
#include <stdio.h>
#include <mysql.h> // mysql文件
int main(void)
{
MYSQL mysql; //数据库句柄
MYSQL_RES* res; //查询结果集
MYSQL_ROW row; //记录结构体
//初始化数据库
mysql_init(&mysql);
//设置字符编码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库
if (mysql_real_connect(&mysql, "127.0.0.1", "root", "123456qweQWE", "school", 3306, NULL, 0) == NULL) {
printf("错误原因: %s\n", mysql_error(&mysql));
printf("连接失败!\n");
exit(-1);
}
//查询数据
int ret = mysql_query(&mysql, "select * from student;");
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给ROW赋值,判断ROW是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res))
{
printf("%s ", row[0]); //打印ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
//释放结果集
mysql_free_result(res);
//关闭数据库
mysql_close(&mysql);
system("pause");
return 0;
}