Linux C++ 链接数据库并对数据库进行一些简单的操作

一.引言(写在之前)

在我们进行网络业务代码书写的时候,我们总是避免对产生的数据进行增删改查,为此,本小博主在这里简历分享一下自己在Linux中C++语言与数据之间交互的代码的入门介绍。

二.代码书写以及一些变量和函数的简单应用

1.头文件的引入

cpp 复制代码
#include <mysql/mysql.h>

包含了连接数据库的头文件和库文件

2.一些函数和变量的介绍

MYSQL 数据库链接句柄

mysql_init(MYSQL* mysql) 用来初始化数据库连接句柄,需要传入一个句柄并返回一个指向句柄的指针

mysql_real_connect(连接句柄,用户名,密码,数据库名称,端口(0表示默认端口,即3303),一般给NULL,一般也给NULL);

mysql_close(MYSQL*mysql);表示关闭连接

mysql_query(MYSQL *mysql,char* sql) 表示执行sql语句,char* sql即要执行的sql语句

MYSQL_RES *mysql_store_result(MYSQL *mysql);返回一个指向返回结果集的指针。

uint64_t mysql_num_rows(MYSQL_RES *res); 表示返回的数据个数即行数

unsigned int mysql_field_count(MYSQL *mysql);查看当前行数

三.附上我自己的测试代码吧(大家不可以照抄熬,数据库名字和表的结构不一样会导致大家出错,也可以call me maybe)

cpp 复制代码
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main() {
  MYSQL mysql_con;

  MYSQL *mysql = mysql_init(&mysql_con);

  if (mysql == &mysql_con) {
    printf("hahahhahahah\n");
  }//打印此玩意,就证明mysql_init与mysql_con是一个玩意

  if (mysql == NULL) {
    printf("mysql init failed\n");
    exit(1);
  }//打印这行说明初始化失败,如果是自己写的代码的话。检查连接句柄是不是有问题或者是不是忘记初始化了

  mysql = mysql_real_connect(mysql, "localhost", "root", "wsx962464", "c220x",
                             3306, NULL, 0);//localhost可以换成127.0.0.1,这一行千万不可以照抄,数据库名字啥的都不一样
  if (mysql == NULL) {
    printf("连接失败\n");
    exit(1);
  }

  printf("连接成功\n");

  char *sql = "insert into student values(3,'zzj',55)";

  int quert_res = mysql_query(mysql, sql);

  if (quert_res == 0) {
    printf("执行成功\n");
    exit(1);
  } else {
    printf("执行失败\n");
  }

  mysql_close(mysql);

  return 0;
}

四.last but not least

最后在命令太进行编译的时候,千万千万不要忘记加库名如下:

最后加上-lmysqlclient(哪个标志挡住了,可能看不到)

相关推荐
失散135 分钟前
软件设计师——09 数据库技术基础
数据库·软考·软件设计师
mit6.8249 分钟前
10.5 数位dp
c++·算法
爱奥尼欧11 分钟前
【Linux】网络部分——Socket编程 UDP实现网络云服务器与本地虚拟机的基本通信
linux·服务器·网络
Ching·12 分钟前
RK3568入门之VScode远程连接开发板,直接开发板上面编程和实验
linux·ide·vscode·编辑器·rk3568
初圣魔门首席弟子15 分钟前
C++ STL 向量(vector)学习笔记:从基础到实战
c++·笔记·学习
养生技术人20 分钟前
Oracle OCP认证考试题目详解082系列第53题
数据库·sql·oracle·database·开闭原则·ocp
青草地溪水旁26 分钟前
Visual Studio Code中launch.json深度解析:C++调试的艺术
c++·vscode·json
m0_5522008231 分钟前
《UE5_C++多人TPS完整教程》学习笔记62 ——《P63 多人游戏中的开火特效(Fire Effects in Multiplayer)》
c++·游戏·ue5
iconball39 分钟前
个人用云计算学习笔记 --20 (Nginx 服务器)
linux·运维·笔记·学习·云计算
银帅1833503097144 分钟前
2018年下半年试题四:论NoSQL数据库技术及其应用
数据库·架构·nosql