池州网站制作优化,网站需要审核吗,生活服务网站建设方案,怎样做网站链接数据库_之电商API MySQL C API 使用#xff08;基本函数#xff09; Mysql C API函数详解 MySQL的常用API
一个常用的程序调用MySQL数据库的时候通常都会调用以下API,下面来逐个分析. mysql_init() //函数原型
MYSQL *STDCALL mysql_init(MYSQL *mysql);这个API主要是用来分…数据库_之电商API MySQL C API 使用基本函数 Mysql C API函数详解 MySQL的常用API
一个常用的程序调用MySQL数据库的时候通常都会调用以下API,下面来逐个分析. mysql_init() //函数原型
MYSQL *STDCALL mysql_init(MYSQL *mysql);这个API主要是用来分配或初始化一个MySQL对象,用来连接MySQL服务端; 返回值是MYSQL *; 参数MYSQL *mysql是指定一个MYSQL对象. mysql_options() //函数原型
int STDCALL mysql_options(MYSQL *mysql, enum mysql_option option,const void *arg);此API可用于设置额外的连接选项,并影响连接的行为.本函数可多次调用来设置数个选项; 参数MYSQL *mysql是指定一个MYSQL对象; 参数enum mysql_option option是供调用者选择填写的连接选项; 参数const void *arg是结合上一个参数填写的连接选项的值. 关于连接选项的填写,可以参考 mysql_options()函数 mysql_real_connect() //函数原型
MYSQL *STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user, const char *passwd,const char *db, unsigned int port,const char *unix_socket,unsigned long clientflag);这个API主要是用来分配或初始化一个MySQL对象,用来连接MySQL服务端. 参数MYSQL *mysql是指定一个MYSQL对象,此处为mysql_init函数返回的指针; 参数const char *host指定主机地址; 参数const char *user指定mysql用户名; 参数const char *passwd输入该用户名的密码; 参数const char *db指定数据库,当该值为空时链接到默认的数据库; 参数unsigned int port指定端口; 参数const char *unix_socket指定使用unix链接方式,为空时表明不适用socket或管道机制; 参数unsigned long clientflag通常设置为0. mysql_query() //函数原型
int STDCALL mysql_query(MYSQL *mysql, const char *q);此API是最常用的,增删查改都使用到它,query英文意思是查询,但这里表示执行. 参数MYSQL *mysql是指定一个MYSQL对象. 参数const char *输入一个SQL语句. mysql_store_result() //函数原型
MYSQL_RES *STDCALL mysql_store_result(MYSQL *mysql);获取结果集,通常是搭配mysql_query这个API来使用,查询上一条SQL语句返回的结果. 参数MYSQL *mysql是指定一个MYSQL对象 返回值MYSQL_RES是一个句柄,可以使用mysql_fetch_row取出这个结果集里头有多少行数据. mysql_use_result() //函数原型
MYSQL_RES *STDCALL mysql_use_result(MYSQL *mysql);这个API是在调用一个可以产生结果集的命令之后,搭配本函数使用获取该结果集; 参数MYSQL *mysql是指定一个MYSQL对象. mysql_fetch_row() //函数原型
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);结合mysql_store_result这个API来使用,获取每一行的内容. 参数MYSQL_RES *result是通过mysql_use_result获取到的返回值. mysql_free_result() //函数原型
void STDCALL mysql_free_result(MYSQL_RES *result);操作完结果集之后.一定要调用本函数来释放内存; 参数MYSQL_RES *result是通过mysql_use_result获取到的返回值. mysql_error() //函数原型
const char *STDCALL mysql_error(MYSQL *mysql);函数返回值是const char*类型,主要是返回最近调用mysql函数发生了哪些错误信息 参数MYSQL *mysql是指定一个MYSQL对象 mysql_close() //函数原型
void STDCALL mysql_close(MYSQL *sock);mysql_close()是每个调用数据库连接的程序在最后阶段都必须要调用的, 很明显它的功能是用来关闭一个MySQL服务端的连接. 参数MYSQL *mysql是指定一个MYSQL对象 MySQL的API应用
下面使用一个比较实际的例子,用这些API写一个简单的单机版数据库管理软件. 本地数据库新建好两个表并存入部分初始信息: 先定义好包含文件:define.h
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include mysql.h
#include iostream
#include iomanip
#include string
#include sstream
#include assert.h
#pragma comment(lib,libmysql.lib)定义一个管理类:CManager 提供主菜单的显示,连接数据库和打印错误的功能.
CManager.h
#pragma once
#include define.h
#include CWorker.h
#include CAdmin.h
class CManager
{MYSQL m_sql;CWorker m_work;CAdmin m_admin;int Menu();bool ConnectDB();
public:int Main();static void PrintError(std::string sPromp){auto sql getInstance().m_sql;std::cout sPromp ( mysql_errno(sql) ): mysql_error(sql) std::endl;system(pause);}static CManager getInstance(){static CManager m;return m;}CManager() : m_admin(m_sql),m_work(m_sql){}
};CManager.cpp
#include CManager.h
using namespace std;
int CManager::Menu()
{system(cls);const char* sPrior m_admin.GetPrior() ? 普通 : 高级;cout \n\n\t\t当前用户 m_admin.GetUser() 【 sPrior 】 endl;puts(\t\t********************************);puts(\t\t*\t1、浏览所有信息 *);puts(\t\t*\t2、添加信息 *);puts(\t\t*\t3、删除信息 *);puts(\t\t*\t4、修改信息 *);puts(\t\t*\t5、查找信息 *);if (m_admin.GetPrior())puts(\t\t*\t6、密码修改 *);elseputs(\t\t*\t6、管理账号 *);puts(\t\t*\t0、退出 *);puts(\t\t********************************);cout \t\t请选择;int i 0;cin i;switch (i)