C++ - 操作MySQL数据库

操作数据库的案例

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

//固定不变的
MYSQL mysql;    //一个数据库结构体  
MYSQL_RES* res; //一个结果集结构体
MYSQL_ROW row; //char** 二维数据,存放一条条记录


void connect();//连接数据库
void insert(); //插入数据
void delet();  //删除数据
void update(); //更新数据
void select(); //查询数据


int main()
{
	connect();

	select();

	return 0;
}

void connect()
{


	//初始化数据库
	mysql_init(&mysql);

	//设置编码方式
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库                    //ip地址	   //用户名 //密码       //数据库名
	if (mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 3306, NULL, 0))
	{
		printf("数据库连接成功!\n");
	}
	else
	{
        printf("数据库连接失败!\n");
		printf("错误原因:%s\n", mysql_error(&mysql));
		exit(-1);
	}
}

void insert()
{
	//向数据库插入数据
	const char* sql = "insert into student values(2,'李四','女'),(3,'王五','男'),(4, '赵六', '女')";
	if (mysql_query(&mysql, sql))
	{
		printf("插入数据失败:%s \n", mysql_error(&mysql));
	}
	else
	{
		printf("插入数据成功\n");
	}
}

void delet()
{
	//向数据库删除数据
	const char* sql_2 = "delete from student where name = '赵六'";
	if (mysql_query(&mysql, sql_2))
	{
		printf("删除数据失败:%s \n", mysql_error(&mysql));
	}
	else
	{
		printf("删除数据成功\n");
	}
}

void update()
{
	//向数据库修改数据
	const char* sql_3 = "update student set id = 5 where name = '李四'";
	if (mysql_query(&mysql, sql_3))
	{
		printf("修改数据失败:%s \n", mysql_error(&mysql));
	}
	else
	{
		printf("修改数据成功\n");
	}
}

void select()
{
	//需要注意的是,在下面的设置中,所查询到的数据 与打印出来的数据要相互匹配,
	//不然就会出现乱码的
	//查询数据
	const char* sql_4 = "select * from student where name = '李四'";
	if (mysql_query(&mysql, sql_4))
	{
		printf("未查到记录:%s \n", mysql_error(&mysql));
	}
	else
	{
		printf("查询成功 \n");
	}
	//获取查询结果集
	res = mysql_store_result(&mysql);
	if (res)
	{
		printf("获取到数据\n");
	}
	else
	{
		printf("未获取到数据:%s \n", mysql_error(&mysql));
	}
	//打印获取到的数据
	printf("id\tname\tsex\n");
	while (row = mysql_fetch_row(res))
	{
		printf("%s\t%s\t%s\n", row[0], row[1], row[2]);
	}
	//释放资源
	mysql_free_result(res);//释放结果集
	mysql_close(&mysql);//关闭数据库
}

运行结果:

使用sprintf()拼接sql语句

	char sql[1024];
	int id = 8;
	char name[25] = "张六";
	char sex[25] = "男";

	//使用sprintf拼出来的语句是一个标准的c语言字符串,可以使用该函数插入变量值
	sprintf_s(sql, "insert into student values(%d, '%s', '%s');", id, name, sex);
	if (mysql_query(&mysql, sql))//该语句提交成功返回0,失败放回1
	{
		printf("插入数据失败\n");
	}
	else
	{
		printf("插入数据成功\n");
	}

	select();

 

posted @ 2023-10-11 17:05  [BORUTO]  阅读(107)  评论(0编辑  收藏  举报