c++操作mysql入门详解
首先,根据你当前的操作系统,还有开发工具,选择相应的mysql版本。本人选择的环境是win10 + vs2013
需要解决三个问题:1、下载安装mysql服务器,并登录mysql测试一下是否安装成功;2、搭建mysql开发环境;3、写一个简单的demo连接操作数据库,看看是否能够成功。
下面依次完成上述三个问题:
1、下载安装mysql:
注:安装环境是一件耐心和折磨的事,所以静下心来慢慢弄吧。
打开https://downloads.mysql.com/archives/这个地址,找到 mysql installer 下载,或者这个地址下载:https://dev.mysql.com/archives/get/file/mysql-installer-community-5.7.21.0.msi。
安装mysql,并测试是否安装成功,请另行百度。啊哈哈哈嗝
懒人参考:https://www.cnblogs.com/dtting/p/7691202.html
安装完后,可以看一下任务管理器里mysqld.exe这个进程在不在。
有可能你在cmd界面执行mysql命令登录会提示你没有这个命令,这时不用慌,可以cd到mysql安装目录再执行目录下的mysql.exe -u root -p 登录。可以执行这个sql看下当前的数据库,show databases;
use world;
可能还会遇到很多问题,百度一下吧。
2、搭建mysql开发环境:
恭喜你,完成了第一步,你已经很了不起了。
在你安装的目录里有你需要的开发环境,看考:https://www.cnblogs.com/magicsoar/p/3817518.html。
打开工程属性,c/c++常规在添加头文件目录(Additional Include Directories)里添加mysql的头文件路径。我的是C:\Program Files\MySQL\MySQL Server 5.7\include;
链接器(Linker)常规里,找到添加库目录(Additional Library Directories)里添加mysql的库目录。这样代码里就可以这样写了#pragma comment(lib,"libmysql.lib")
还需要把libmysql.dll拷贝到你的可执行文件所在目录才行哦。
3、一个简单的demo连接操作数据库:
1 #include <Windows.h> 2 #include <mysql.h> 3 #include <string> 4 #include <iostream> 5 6 using namespace std; 7 #pragma comment(lib,"libmysql.lib") 8 int main() 9 { 10 11 const char user[] = "root"; 12 const char pswd[] = "root"; 13 const char host[] = "localhost"; 14 const char database[] = "world"; 15 unsigned int port = 3306; 16 MYSQL myCont; 17 MYSQL_RES *result; 18 MYSQL_ROW sql_row; 19 int res; 20 mysql_init(&myCont); 21 if (mysql_real_connect(&myCont, host, user, pswd, database, port, NULL, 0)) 22 { 23 mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式 24 res = mysql_query(&myCont, "select * from city ORDER BY ID desc limit 10");//正序ASC,倒序desc查询,字符串里千万不要有分号 25 if (!res) 26 { 27 result = mysql_store_result(&myCont); 28 if (result) 29 { 30 int iLength = mysql_num_fields(result); 31 while (sql_row = mysql_fetch_row(result))//获取具体的数据 32 { 33 for (int num = 0; num < iLength; ++num) 34 { 35 cout << sql_row[num] << "\t"; 36 } 37 cout << endl; 38 } 39 } 40 } 41 else 42 { 43 cout << "query sql failed!" << endl; 44 } 45 } 46 else 47 { 48 cout << "connect failed!" << endl; 49 } 50 if (result != NULL) 51 mysql_free_result(result); 52 mysql_close(&myCont); 53 system("pause"); 54 return 0; 55 56 }
代码来源网络。
执行结果:
4、小提示:
a、如果你是32位的mysql库文件,就编译32位的程序;64位mysql库文件就编译64位的程序哦;
b、我也是渣渣,但我有一颗死磕且能静下来的心,借用网上资料也能成事,难得;
c、注意修改配置时,debug和release的区别。