一:引入libmysql文件,将两个文件复制到项目的built目录下
二:修改相应的CMakeLists.txt文件
注意:地址中有空格的地方一定要使用'\'连接起来!!!这里很容易入坑!!!
,CMakeLists.txt这样写就行了,如果地址不一样就改改
cmake_minimum_required(VERSION 3.20)
project(project)
set(CMAKE_CXX_STANDARD 17)
include_directories(C:\\Program\ Files\\MySQL\\MySQL\ Server\ 5.7\\include)
link_directories(C:\\Program\ Files\\MySQL\\MySQL\ Server\ 5.7\\lib)
# 就这么写,不需要改
link_libraries(libmysql)
add_executable(project main.cpp)
target_link_libraries(project libmysql)
测试代码:
#include <iostream>
#include <mysql.h>
int main()
{
MYSQL *conn;
conn = mysql_init(nullptr);
const char *host = "localhost";
const char *password = "密码";
//连接数据库
if(!mysql_real_connect(conn,host,"用户名",password,
"cliondb",0,nullptr,0)){
std::cerr << "MySQL connection failed: " << mysql_error(conn) << std::endl;
return 1;
}else{
std::cout << "Connected to MySQL server successfully!" << std::endl;
}
//增
if(mysql_query(conn,"insert into book values('makabaka',null,18,'jianzhe')")){
std::cerr << "insert failed!" << mysql_error(conn) << std::endl;
}
else{
std::cout << "success!" << std::endl;
}
//删
if(mysql_query(conn,"delete from book where bname = 'makabaka'")){
std::cerr << "delete failed!" << mysql_error(conn) << std::endl;
}
else{
std::cout << "success!" << std::endl;
}
//改
if (mysql_query(conn, "update book set bname = 'ahaha' where bname = 'xiyouji'")) {
std::cerr << "Update failed: " << mysql_error(conn) << std::endl;
} else {
std::cout << "Update successful!" << std::endl;
}
//遍历表数据,方便后续获取结果集
if(mysql_query(conn,"select * from book")){
std::cerr << "MySQL query failed: " << mysql_error(conn) << std::endl;
}else{
//获取结果集
MYSQL_RES * res = mysql_store_result(conn);
if(res){
// 获取一行数据
MYSQL_ROW row;
//mysql_fetch_row() 获取每一列的数据(每一个字段的数据),遍历
while((row = mysql_fetch_row(res))){
for(int i = 0; i < mysql_num_fields(res);i++){
std::cout << (row[i] ? row[i] : "NULL") << ' ';
}
std::cout << std::endl;
}
//释放内存
mysql_free_result(res);
}
}
//关闭连接
mysql_close(conn);
return 0;
}