记录用Visual Studio 2017连接MySQL时遇到的一些问题及连接过程
首先声明一下:用VS连接Mysql的方法有很多种,我使用的方法建一次项目需要配置一次
下面进行连接
首先在这里我用的是X64的mysql进行的连接,故在开始的时候需要更改一下运行控制台 这里我也给出了更改的方式、以及会出现的报错
更改方式:
如果不更改会产生的报错:
*OK,更改过后我们继续进行以下操作,这里我就不详解了,可以去看这里 **
对了还有,过程中可能还会报这样一个错:
没有找到libmysql.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题
关于这个错我是这么来解决的:
解决方法:
找到MySQL安装包,进入lib目录里面将下面的连个文件一同复制过去
下面是我用来测试数据库是否连接成功的代码(必须提前建好数据在里面)
#include <stdio.h>
#include <mysql.h>
#define _UNICODE
void sqlselect(MYSQL *, const char *); //测试查询数据
MYSQL *mysql = NULL;
int main()
{
//初始化MySQL连接句柄
mysql = mysql_init((MYSQL *)0);
mysql_real_connect
(
mysql,
"localhost", //数据库地址
"root", //数据库用户名
"root", //数据库密码
"test", //数据库名称
0, //数据库端口,0表示默认端口(即3306)
NULL, //如果unix_socket不是NULL,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型
0 //通常是0
);
if (!mysql) //连接失败
{
printf("Connection error:%d, %s\n", mysql_errno(mysql), mysql_error(mysql));
}
const char *command = "select * from id,user,pwd"; //查询指令
// 改变编码格式
mysql_set_character_set(mysql, "GB2312");
sqlselect(mysql, command); //查询数据
mysql_close(mysql); //关闭连接
system("pause");
return 0;
}
void sqlselect(MYSQL *mysql, const char *command)
{
int flag = mysql_real_query(mysql, command, strlen(command));
if (flag)
{
printf("Select error:%d, %s\n", mysql_errno(mysql), mysql_error(mysql));
return;
}
MYSQL_RES *res = mysql_store_result(mysql); //读取将查询结果
MYSQL_FIELD *field = mysql_fetch_fields(res); //获取所有列名
int field_count = mysql_field_count(mysql); //获取列数
//输出所有列名
for (int i = 0; i < field_count; i++)
{
printf("%s\t", field[i].name);
}
printf("\n");
//遍历输出每一行数据
MYSQL_ROW row;
while (row = mysql_fetch_row(res))
{
for (int i = 0; i < field_count; i++)
{
printf("%s\t", row[i]);
}
printf("\n");
}
}
配置完成以后的效果图: