可以更方便的使用mysql for c库
mysql_tools.zip
或者百度网盘:
链接: https://pan.baidu.com/s/1dPtlh5W3mMFcisC4SOa3hQ 提取码: gcu2
库的安装:http://www.huidong.xyz/index.php?mode=2&id=184
源码:
mysql_tools.h
////////////////////////////////////////////////////
//
// mysql_tools.h
//
// mysql库的辅助使用库
//
// 版本:Ver1.0
//
// 制作:huidong <mailkey@yeah.net>
//
// 创建时间: 2020.11.21
// 最后修改: 2020.11.22
//
//
#pragma once
#include <iostream>
using namespace std;
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
// 连接数据库,返回是否连接成功
bool init_connect(
const char* host, // 主机ip
const char* user, // 数据库用户名
const char* passwd, // 数据库密码
const char* db, // 数据库名称
int port = 3306 // 端口,通常为3306
);
// 关闭数据库的连接
void close_connect();
// 执行sql语句,返回执行是否成功
bool do_sql(const char* command);
// 得到得到执行sql查询语句后返回的内容条数
my_ulonglong get_sql_result_num();
// 得到执行sql查询语句后返回的内容,num是指第几条内容(从0数)
MYSQL_ROW get_sql_result(my_ulonglong num);
// 得到当前的res
MYSQL_RES* get_sql_res();
// 设置当前的res
void set_sql_res(MYSQL_RES* res);
mysql_tools.cpp
////////////////////////////////////////////////////
//
// mysql_tools.cpp
//
// mysql库的辅助使用库
//
// 版本:Ver1.0
//
// 制作:huidong <mailkey@yeah.net>
//
// 创建时间: 2020.11.21
// 最后修改: 2020.11.22
//
//
#include "mysql_tools.h"
MYSQL* mysql = NULL;
MYSQL_RES* last_res = NULL;
// 执行sql语句,返回执行是否成功
bool do_sql(const char* command)
{
// 有值返回说明执行失败
if (mysql_real_query(mysql, command, strlen(command)))
{
cout << "Select error: " << mysql_errno(mysql) << ", " << mysql_error(mysql) << endl;
return false;
}
last_res = mysql_store_result(mysql);
return true;
}
// 得到得到执行sql查询语句后返回的内容条数
my_ulonglong get_sql_result_num()
{
return mysql_num_rows(last_res);
}
// 得到执行sql查询语句后返回的内容,num是指第几条内容(从0数)
MYSQL_ROW get_sql_result(my_ulonglong num)
{
mysql_data_seek(last_res, num); // 移动到指定行
return mysql_fetch_row(last_res);
}
// 得到当前的res
MYSQL_RES* get_sql_res()
{
return last_res;
}
// 设置当前的res
void set_sql_res(MYSQL_RES* res)
{
last_res = res;
}
// 连接数据库,返回是否连接成功
bool init_connect(
const char* host, // 主机ip
const char* user, // 数据库用户名
const char* passwd, // 数据库密码
const char* db, // 数据库名称
int port // 端口,通常为3306
)
{
// 初始化MySQL连接句柄
mysql = mysql_init((MYSQL*)0);
// 连接数据库
mysql_real_connect(mysql, host, user, passwd, db, port, NULL, 0);
// 连接失败
if (!mysql)
{
cout << "Connection error: " << mysql_errno(mysql)
<< ", " << mysql_error(mysql) << endl;
return false;
}
// 改变编码格式
mysql_set_character_set(mysql, "GB2312");
return true;
}
// 关闭数据库的连接
void close_connect()
{
mysql_close(mysql); // 关闭连接
}