利用Vscode、c++调用mysql数据库

利用Vscode、c++调用mysql数据库

从安装到实现操作(留个记录防止忘记)

操作1、在Ubuntu下安装mysql(链接如下)

参考链接如下:

(5条消息) Ubuntu系统安装mysql_ubuntu mysql_褚书成的博客-CSDN博客https://blog.csdn.net/qq_37120477/article/details/130653390

sudo apt-get update
sudo apt-get install mysql-server

启动重启:

#启动: 
sudo service mysql start
#重启:
sudo  service mysql restart 
#关闭: 
sudo service mysql stop

修改mysql链接方式

 // 不需要输入密码,直接回车
 sudo mysql -u root -p
 #开启远程连接
update user set host='%' where user='root';
#修改了之后刷新以下权限
flush privileges;
#修改数据库密码.
ALTER USER 'root'@'%' identified with mysql_native_password BY '123';
#修改了之后刷新以下权限
flush privileges;
#退出数据库
quit;

操作2: 创建等会需要用的数据库及数据表

CREATE DATABASE myweb;

create table studen( id int(10), passwoed varchar(40),salary float);

操作三:vscode中c++链接数据库

配置文件tasks.json中添加:

"-I/www/server/mysql/include",
"-L/www/server/mysql/lib",
"-lmysqlclient",

代码(以向数据库添加内容为例子):

参考:(4条消息) 【Mysql】C/C++代码操作数据库c++操作mysql数据库慕雪华年的博客-CSDN博客https://blog.csdn.net/muxuen/article/details/131152430

#include<iostream>
#include <mysql/mysql.h>
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
#define HOST "127.0.0.1"
#define PORT 3306
#define USER "root"
#define PASSWD "123"
#define DBNAME "myweb"
// 将double转为string
std::string double2string(const double& d)
{
    std::stringstream s_tmp;
    s_tmp << d;  
    std::string s = s_tmp.str();
    return s;
}
​
int add_key_to_stu(MYSQL *mysql,int id, const std::string& name)
{
    // 1.将传入的参数处理为一个完整的sql语句
    // 因为第一个编号参数,配置的是自增,所以需要传入null
    std::string sql_cmd = "insert into student(id, passwoed) values (";
    sql_cmd+= double2string(id);
    sql_cmd+= ",'";
    sql_cmd+= name;
    sql_cmd+= "');";
    cout << "[INFO] " << sql_cmd << endl;
    
    // 2.执行语句
    int ret = mysql_query(mysql,sql_cmd.c_str());
    if(ret!=0)
    {
        cerr << "[ERR] mysql insert error: " << mysql_error(mysql) << endl; 
    }
    return ret;
}
​
int main()
{
    // 连接数据库
    // 初始化
    MYSQL *mysql = mysql_init(nullptr);
    if (mysql == nullptr) // 返回值为空代表init失败
    { 
        cerr << "[ERR] init mysql handle failed!\n"; 
        return -1; 
    }
    // 连接
    cout << "[INFO] connect to " << HOST << ":" << PORT << " " << USER << " " << DBNAME << endl;
    // 第一个参数为输出型参数。返回值为MYSQL的起始地址,如果错误返回NULL
    if (mysql_real_connect(mysql, HOST, USER, PASSWD, DBNAME, PORT, nullptr, 0) == nullptr) 
    {
        cerr << "[ERR] mysql connect error: " << mysql_error(mysql) << endl; 
        return -1;
    }
    // 配置为和数据库同步的utf8字符集
    mysql_set_character_set(mysql, "utf8");
    // 到这里就已经成功了
    cout << "[INFO] mysql database connect success!" << endl; 
​
    add_key_to_stu(mysql,2,"asfdg");
    // 关闭连接
    mysql_close(mysql); 
    return 0;
}
​

结果:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ng_T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值