当前位置: 首页 > news >正文

各大网站黑白制作相册怎么做

各大网站黑白,制作相册怎么做,网站备案要什么资料,数字校园建设专题网站数据库_之电商API MySQL C API 使用(基本函数) 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)
http://www.yayakq.cn/news/995453/

相关文章:

  • 展示型网站设计公司国际域名的外贸网站
  • 深圳网站建设响应式我要装修网
  • 企业的网站品牌推广2022年最好用的搜索引擎
  • 台州网站制作建设市场网站建设
  • 泰安企业建站公司排行广州网站建设哪里买
  • 商城网站开发解决方案手机编程软件有哪些
  • 网站解析ip地址html+jsp个人网站模板
  • 什么是网站域名wordpress指定模板
  • 郑州高端网站建设怎么样服装网站建设项目实施报告
  • 曲阜网站建设哪家便宜建网站多少钱一个月
  • 服装外贸网站建设中企动力官网登录入口
  • 网站备案营业执照厦门专业的网站制作公司
  • 建立门户网站哪个行业最容易做网站
  • 网站建设维护人员岗位延边州住房和城乡建设局网站
  • 汉沽网站建设公司怎样做网络推广引流
  • 网站做推广页需要什么中小企业一站式服务平台
  • 星宿网站建设gta5此网站正在建设
  • 南充营销型网站建设不买域名怎么做网站
  • 网站建设费税率是多少广州市门户网站建设
  • 新手初做网站天津注册公司优惠政策
  • 个人接外贸订单网站如何制作网页网站
  • 雅茂道网站建设湖南做网站 尖端磐石网络
  • 淮南做网站wordpress网盘引擎
  • 中端网站建设福州做企业网站
  • 浙江网站建设价位如何介绍网站模板
  • 四川省建设厅网站首页做外贸哪个网站最容易上手
  • 自己动手创建一个公司网站怎么查网站到期时间
  • 美丽乡村建设网站模板商业性质网站建设步骤
  • 动态域名做网站创建公司为什么必须三个人
  • 某学校网站建设方案子网站域名ip地址查询