c++使用mysql的api连接相关有关问题
c++使用mysql的api连接相关问题
记录一下自己使用中的相关问题,方便有同样问题的同学解决。
- 关于在VS中的各种配置,看这里,不过需要注意一下,我现在用的mysql版本是5.6的,已经没有【MySQL Server \lib\opt】这个路径了,将这一项设置到【MySQL Server \lib】即可
- 如果出现如下错误:
1>main.obj : error LNK2019: 无法解析的外部符号 _mysql_server_init@12,该符号在函数 _main 中被引用 1>main.obj : error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用 1>main.obj : error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用 1>main.obj : error LNK2019: 无法解析的外部符号 _mysql_options@12,该符号在函数 _main 中被引用
因为按照第一步来的时候,建立的是win32项目,而现在系统、mysql使用的就均是x64的,改成x64即可,操作步骤如下:
.项目->属性->配置管理器
活动解决方案平台,下拉选新建,出现一个新的对号框,在键入选择新平台中选择X64
学习自这里
- 之后可以写一个简单的c程序测试一下是否成功
#include "winsock.h" #include "iostream" #include "mysql.h" #pragma comment(lib, "ws2_32.lib") #pragma comment(lib, "libmysql.lib") using namespace std; void main() { MYSQL mydata; mysql_library_init(0,NULL,NULL);//初始化MySQL C API库 mysql_init(&mydata);//初始化mydata的数据结构,mydata是MYSQL对象 mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk");//连接选项:添加GBK字符集支持 //连接函数 if(mysql_real_connect(&mydata,"localhost","root","1234","demo", 3306, 0, 0) != NULL) cout<<"database connection OK!"<<endl; }
这里注意一下,mysql_real_connect函数中的几个参数(&mydata,"localhost","root","1234","demo", 3306, 0, 0),一般就需要改2,3,4,5几个参数即可,分别为数据库位置,用户名,密码,待连接的数据库名称
- 如果代码中出现#include "stdafx.h"报错:ERROR,无法打开源文件...,参见这里
主要是由于这个头文件属于预编译头文件,如果在创建项目时候没有告诉VS相关信息,当然不认识这是什么东西了。
- #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL
参见这里
-
c++ fatal error C1083: 无法打开预编译头文件:“.\Debug\router.pch”
参见这里,这个问题也属于预编译头文件问题