c++操作mysql(详解)

1.安装mysql

具体安装看下面这个连接

(18条消息) Mysql使用详解_@seven@的博客-CSDN博客

2.接口介绍

2.1.初始化函数

MYSQL *mysql_init(MYSQL *mysql);

mysql 可以传 NULL

返回值:mysql句柄 

2.2设置连接选项配置

int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)

描述

可用于设置额外的连接选项,并影响连接的行为。可多次调用该函数来设置数个选项。

应在mysql_init()之后、以及mysql_connect()或mysql_real_connect()之前调用mysql_options()。

选项参量指的是你打算设置的选项。Arg参量是选项的值。如果选项是整数,那么arg应指向整数的值。

如:


mysql_options(m_mysql, MYSQL_OPT_RECONNECT, &reconnect);配合mysql_ping实现自动重连
mysql_options(m_mysql, MYSQL_SET_CHARSET_NAME, "utf8mb4");//编码设置

 2.3连接数据库

MYSQL *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 client_flag)

参数介绍

  • mysql 初始化的句柄指针
  • host 主机地址
  • user 用户名 – mysql数据库 root
  • passwd 用户的密码
  • db 要连接的数据库
  • port 端口 一般填0,mysql默认端口 3306
  • unix_socket 本地套接字 ,一般填NULL
  • client_flag 连接标志 一般填0

返回值:成功返回 连接句柄,失败返回 NULL

 2.4释放连接资源

  mysql_close(MYSQY* conn);

释放conn连接资源

2.5数据库操作

int mysql_query(MYSQL *mysql, const char *query)

参数介绍:

  • mysql 连接句柄
  • query 执行的sql

反回值:

  • 成功 返回 0
  • 失败 返回 非0

2.6获得结果集的函数

MYSQL_RES *mysql_store_result(MYSQL *mysql)

返回值: 

如果读取结果集失败,mysql_store_result()还会返回Null指针。

通过检查mysql_error()是否返回非空字符串,mysql_errno()是否返回非0值,或mysql_field_count()是否返回0,可以检查是否出现了错误。

如:

MYSQL_RES* res = mysql_store_result(m_mysql);

2.7释放结果集

void mysql_free_result(MYSQL_RES *result)

如:

 mysql_free_result(m_res);
    m_res = NULL;

2.8取出一行信息

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

描述

检索结果集的下一行。在mysql_store_result()之后使用时,如果没有要检索的行,mysql_fetch_row()返回NULL。在mysql_use_result()之后使用时,如果没有要检索的行或出现了错误,mysql_fetch_row()返回NULL。

行内值的数目由mysql_num_fields(result)给出。如果行中保存了调用mysql_fetch_row()返回的值,将按照row[0]到row[mysql_num_fields(result)-1],访问这些值的指针。行中的NULL值由NULL指针指明。

可以通过调用mysql_fetch_lengths()来获得行中字段值的长度。对于空字段以及包含NULL的字段,长度为0。通过检查字段值的指针,能够区分它们。如果指针为NULL,字段为NULL,否则字段为空。

返回值

下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误,返回NULL。

2.9.获取查询的显示列的长度 

unsigned int mysql_num_fields(MYSQL_RES *result)

描述:返回结果集中的列数。

注意,你可以从指向结果集的指针或指向连接句柄的指针获得行数。如果mysql_store_result()或mysql_use_result()返回NULL,应使用连接句柄(因而没有结果集指针)。在该情况下,可调用mysql_field_count()来判断mysql_store_result()是否生成了非空结果。这样,客户端程序就能采取恰当的行动,而不需要知道查询是否是SELECT语句(或类似SELECT的语句)。在下面的示例中,介绍了执行该操作的方式。

行数直接判断MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)是否为空

如:

int num_fields = mysql_num_fields(m_res);

2.10.获取列信息 

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)

描述

返回采用MYSQL_FIELD结构的结果集的列。重复调用该函数,以检索关于结果集中所有列的信息。未剩余字段时,mysql_fetch_field()返回NULL。

每次执行新的SELECT查询时,将复位mysql_fetch_field(),以返回关于第1个字段的信息。调用mysql_field_seek()也会影响mysql_fetch_field()返回的字段。

如果调用了mysql_query()以在表上执行SELECT,但未调用mysql_store_result(),如果调用了mysql_fetch_field()以请求BLOB字段的长度,MySQL将返回默认的Blob长度(8KB)。之所以选择8KB是因为MySQL不知道BLOB的最大长度。应在日后使其成为可配置的。一旦检索了结果集,field->max_length将包含特定查询中该列的最大值的长度。

返回值

当前列的MYSQL_FIELD结构。如果未剩余任何列,返回NULL。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值