MFC连接MySQL的方法:首先建立一个MFC项目。
下面进行设置:
(1)项目—>属性—>配置属性—>C/C++—>附加包含目录:在附加包含目录中添加C:\Program Files\MySQL\MySQL Server 5.7\include(就是安装MySql下的include文件夹,将头文件包含)
(2)项目—>属性—>配置属性—>连接器—>常规—>附加库目录:C:\Program Files\MySQL\MySQLServer 5.7\lib(就是安装MySql下的lib文件夹,将库文件包含)
(3)连接器—>输入—>附加依赖项:添加libmysql.lib(若此处不添加,需要最后在头文件中添加 #pragmacomment(lib,"libmysql.lib") )。
(4)编译通过之后,运行还要将C:\Program Files\MySQL\MySQLServer 5.7\lib(安装MySql下的lib文件夹)中的libmysql.dll拷到项目中的Debug文件夹中(或者拷到C:\Windows\System32中)。
下面在项目头文件或者要连接数据库的文件程序中添加头文件:
- #include "winsock.h"
- #include "mysql.h"
- //#pragma comment(lib,"libmysql.lib") (若未进行上面第(3)步设置,需要添加)
- //******************************添加Button用于测试连接*************
- void CMFCApplication1Dlg::OnBnClickedButton1()
- {
- // TODO: 在此添加控件通知处理程序代码
- MYSQL m_sqlCon;
- mysql_init(&m_sqlCon);
- // localhost:服务器 root/123456为账号密码 managesystemdb为数据库名 3306为端口
- if(!mysql_real_connect(&m_sqlCon,"localhost","root","123456","managesystemdb",3306,NULL,0))
- {
- AfxMessageBox(_T("访问数据库失败!"));
- CString e=mysql_error(&m_sqlCon);//需要将项目属性中字符集修改为“使用多字节字符集”或“未设置”
- MessageBox(e);
- return;
- }
- else
- {
- AfxMessageBox(_T("成功!"));
- mysql_query(&m_sqlCon,"SET NAMES 'GB2312'");//解决从数据库中读取数据后汉字乱码显示的问题
- }
经测试成功!!!
由于系统是32位或者64位的不同,编译时会引起如下错误:
无法解析的外部符号 _mysql_real_connect, 无法解析的外部符号 _mysql_query,无法解析的外部符号 _mysql_init;
解决办法见:https://blog.csdn.net/walker_m/article/details/80149293