这里是跟着视频教程进行学习操作,在期间出现了一些问题,归纳总结,提供一定的参考,总结经验。
目录
这里使用VS调用MYSQL,在创建项目后,需要对项目属性进行一定修改操作:
1.关于VS环境配置相关操作,
根据教学视频,也在CSDN中找到了相同的操作,可以参考下面链接
VS 2019 如何配置mysql环境?_mysql安装需要vs2019_歪歪坨的博客-CSDN博客
进行完这一步之后,就可以调用#include <mysql.h> 不会出现错误
2.然后是通过main函数 向数据库中写入数据,
这里向数据库中写入数据的函数 也是库函数,网上好像也可以查询到,我这里直接贴代码
首先是自定义的头文件<mysqlconnection.h>
#pragma once
//实现musql数据的增删改查操作
#include <mysql.h>
#include <string>
using namespace std;
class connection
{
public:
//初始化数据库连接
connection();
// 释放数据库连接资源
~connection();
// 连接数据库
bool connect(string ip, unsigned short port, string user, string password,
string dbname);
// 更新操作 insert、delete、update
bool update(string sql);
// 查询操作 select
MYSQL_RES* query(string sql);
private:
MYSQL* _conn;//表示和musql server 的一条连接
};
然后是对应的mysqlconnection.c文件代码
#include <mysql.h>
#include "public.h"
#include "connection.h"
connection ::connection()
{
_conn = mysql_init(nullptr);
}
// 释放数据库连接资源
connection::~connection()
{
if (_conn != nullptr)
mysql_close(_conn);
}
// 连接数据库
bool connection :: connect(string ip, unsigned short port,
string user, string password, string dbname)
{
MYSQL* p = mysql_real_connect(_conn, ip.c_str(), user.c_str(),
password.c_str(), dbname.c_str(), port, nullptr, 0);
return p != nullptr;
}
// 更新操作 insert、delete、update
bool connection :: update(string sql)
{
if (mysql_query(_conn, sql.c_str()))
{
LOG("更新失败:" + sql);
cout << mysql_errno(_conn) << endl;
return false;
}
return true;
} // 查询操作 select
MYSQL_RES* connection :: query(string sql)
{
if (mysql_query(_conn, sql.c_str()))
{
LOG("查询失败:" + sql);
return nullptr;
}
return mysql_use_result(_conn);
}
里面构造函数和析构函数都已经写好了。然后是main.c函数
int main()
{
//这是一段测试代码,看能够连接数据库,并写数据
connection conn;
char sql[1024] = { 0 };
sprintf(sql,"insert into user(name,age,sex) values('%s',%d,'%s')",
"lisi",20,"male");
conn.connect("127.0.0.1", 3306, "root","", "chat");
conn.update(sql);
return 0;
}
代码说明:
1.mysql相关的标准函数,根据注释和主函数内容,应该可以侧得到是干什么的,我这里的MYSQL没有密码,多余主函数的第16行没有写,要注意,如果有想要测试的话,注意更改相关字符串!
2.这里没有Mysql创建表格的步骤,表格是在MYsql中预先创建好的,创建步骤简单说一下,,如下:差不多类似这样,(图中紫色部分不写也没啥)
首先创建数据库 chat是数据库的名字,然后在chat里面创建表
create DATABASE chat
CREATE TABLE `user` (
`id` int DEFAULT NULL COMMENT '序号',
`name` varchar(20) DEFAULT NULL COMMENT '姓名',
`age` int DEFAULT NULL COMMENT '年龄',
`sex` char(10) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表'
3.程序运行结果
如果运行没有错误的话,应该没啥问题 不过也出现了一些错误,我这里写我遇到的 根据mysqlconnection.c文件,如果没写入成功,会显示更新失败,错误提示代码是1399
在网上查询之后,发现1399是因为输入中文导致,所以后续改了写入内容,全部改成了英文,然后就没什么错误了,,
最后也是成功写入,结果如下,测试了几次,没什么问题
后续学习继续更新