环境介绍
操作系统:win10
mysql数据库版本(64位):
visual studio:2015专业版
安装步骤
0、安装mysql数据库(默认安装路径)
1、连接数据库首先配置环境
先将C:\Program Files\MySQL\MySQL Server 8.0\lib下的libmysql.dll复制到C:\Windows\System32中
2、修改win32 consoleapplication 为64位
如果不修改为x64,会报如下错误:
3、项目属性->VC+±>包含目录添加mysql\include路径,用来引用头文件
4、项目属性->链接器->常规->附加库目录 添加mysql\lib路径
5、项目属性->链接器->输入->附加依赖项 添加libmysql.lib名称即可(只添加静态库)
测试代码:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include<mysql.h>
#pragma comment(lib,"libmysql")
int main()
{
//初始化
MYSQL * mysql = mysql_init(NULL);
if (mysql == NULL)
{
printf("初始化失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
//改变字符集为utf-8
system("chcp 65001");
mysql_set_character_set(mysql, "utf8");
MYSQL * contMysql = mysql_real_connect(mysql,
"127.0.0.1",//地址
"root",//账号
"xxxxx",//密码
"testdb",//数据库
3306,//端口
NULL,
0
);
if (contMysql == NULL)
{
printf("链接失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
std::cout << "Connect success\n";
//创建数据库
int ret = mysql_query(contMysql, "create database If Not Exists myNewDatabase");
if (ret)
{
printf("创建数据库失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
//创建表
ret = mysql_query(contMysql, "create table If Not Exists myNewDatabase.T_STUDENT (sid varchar(50),sname varchar(50))");
if (ret){
printf("创建表失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
//增加数据
ret = mysql_query(contMysql, "create table If Not Exists myNewDatabase.T_STUDENT (sid varchar(50),sname varchar(50))");
if (ret){
printf("创建表失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
//插入
ret = mysql_query(contMysql, "insert into myNewDatabase.T_STUDENT values('s002','你好')");
if (ret){
printf("插入失败%s", mysql_error(mysql));
return EXIT_FAILURE;
}
//查询
ret = mysql_query(contMysql, "select * from myNewDatabase.T_STUDENT ");
if (ret){
printf("Query faliure %s\n", mysql_error(mysql));
return EXIT_FAILURE;
}
else {
//保存查询的结果
MYSQL_RES* res = mysql_store_result(contMysql);
MYSQL_FIELD* field;
//查询有哪些字段这里返回 sid sname
while ((field = mysql_fetch_field(res)))
{
printf(" %s\t", field->name);
}
unsigned int num_fields = mysql_num_fields(res);
printf("\r\n");
MYSQL_ROW row;
while (row = mysql_fetch_row(res))
{
for (size_t i = 0; i < num_fields; i++)
{
printf("%s ", row[i]);
}
printf("\r\n");
}
mysql_free_result(res);
}
mysql_close(contMysql);
return 0;
}