|
| using | callback = std::function<bool(MYSQL_ROW, unsigned long*, my_ulonglong, my_ulonglong)> |
| | 执行一条查询并通过回调函数逐行流式处理结果。
|
|
|
| nmysql ()=default |
| | 默认构造函数
|
| bool | connectdb (const xarg_db &arg) |
| | 使用提供的XML配置打开一个MySQL连接。
|
| void | closedb () |
| | 关闭已存在的MySQL连接。
|
| bool | changedb (MYSQL *amysql, std::string &adbname) |
| | 在已有连接上切换活动数据库。
|
| bool | query (const char *asql, std::size_t alen) |
| | 执行一条不返回行的SQL语句。
|
| void | escape (const char *asql, std::size_t asqllen, std::string &aoutsql) |
| | 在将任意字节嵌入SQL文本之前进行转义处理。
|
| bool | select (const char *asql, std::size_t asqllen, const callback &aback) |
| | 执行SELECT查询并通过回调处理结果集
|
| bool | stmt_query (const char *asql, std::size_t alen, MYSQL_BIND *abind) |
| | 执行一条带绑定参数的预处理语句。
|
◆ callback
执行一条查询并通过回调函数逐行流式处理结果。
- Parameters
-
| asql | SQL查询语句 |
| asqllen | SQL语句长度 |
| aback | 结果行回调函数,参数为(行数据, 列长度, 当前行号, 总行数) |
- Returns
- true 查询成功
-
false 查询失败
◆ changedb()
| bool ngl::nmysql::changedb |
( |
MYSQL * | amysql, |
|
|
std::string & | adbname ) |
在已有连接上切换活动数据库。
切换当前使用的数据库
- Parameters
-
| amysql | MySQL连接句柄 |
| adbname | 目标数据库名称 |
- Returns
- true 切换成功
-
false 切换失败
- Parameters
-
| amysql | MySQL连接句柄 |
| adbname | 目标数据库名 |
- Return values
-
◆ closedb()
| void ngl::nmysql::closedb |
( |
| ) |
|
关闭已存在的MySQL连接。
关闭MySQL数据库连接
调用mysql_close并重置连接状态标志。
◆ connectdb()
| bool ngl::nmysql::connectdb |
( |
const xarg_db & | arg | ) |
|
使用提供的XML配置打开一个MySQL连接。
建立MySQL数据库连接
- Parameters
-
| arg | 数据库连接参数(主机、端口、用户名、密码、数据库名) |
- Returns
- true 连接成功
-
false 连接失败
初始化MySQL句柄、执行real_connect、设置自动重连和UTF-8字符集, 最后切换到指定数据库。
- Parameters
-
| arg | 数据库连接参数(IP、端口、用户名、密码、数据库名) |
- Return values
-
| true | 连接成功 |
| false | 连接失败(已有连接、初始化失败、认证失败或字符集设置失败) |
◆ escape()
| void ngl::nmysql::escape |
( |
const char * | asql, |
|
|
std::size_t | asqllen, |
|
|
std::string & | aoutsql ) |
在将任意字节嵌入SQL文本之前进行转义处理。
转义SQL字符串防止注入
- Parameters
-
| asql | 待转义的原始字符串 |
| asqllen | 原始字符串长度 |
| aoutsql | 输出参数,存储转义后的字符串 |
使用mysql_real_escape_string对输入进行转义。
- Parameters
-
| asql | 原始SQL字符串 |
| asqllen | 原始字符串长度 |
| aoutsql | 输出转义后的字符串,长度溢出时置为空 |
◆ query()
| bool ngl::nmysql::query |
( |
const char * | asql, |
|
|
std::size_t | alen ) |
执行一条不返回行的SQL语句。
执行SQL命令(无结果集返回)
- Parameters
-
- Returns
- true 执行成功
-
false 执行失败
- Parameters
-
- Return values
-
| true | 执行成功 |
| false | 执行失败(长度溢出或查询错误) |
◆ select()
| bool ngl::nmysql::select |
( |
const char * | asql, |
|
|
std::size_t | asqllen, |
|
|
const callback & | aback ) |
执行SELECT查询并通过回调处理结果集
使用mysql_real_query执行SQL后,通过mysql_store_result获取结果集, 遍历每一行调用回调函数传递行数据和列长度。
- Parameters
-
| asql | SQL查询语句 |
| asqllen | SQL语句长度 |
| aback | 结果行回调,参数为(MYSQL_ROW, unsigned long*, 行数, 列数) |
- Return values
-
| true | 查询并处理成功 |
| false | 查询失败或无结果集 |
◆ stmt_query()
| bool ngl::nmysql::stmt_query |
( |
const char * | asql, |
|
|
std::size_t | alen, |
|
|
MYSQL_BIND * | abind ) |
执行一条带绑定参数的预处理语句。
使用预处理语句执行参数化查询
- Parameters
-
| asql | 预处理SQL语句(含?占位符) |
| alen | SQL语句长度 |
| abind | MYSQL_BIND参数绑定数组 |
- Returns
- true 执行成功
-
false 执行失败
依次执行mysql_stmt_init、prepare、bind_param和execute, 完成后关闭语句句柄。
- Parameters
-
| asql | 预处理SQL语句(含?占位符) |
| alen | SQL语句长度 |
| abind | MYSQL_BIND参数绑定数组 |
- Return values
-
The documentation for this class was generated from the following files:
- E:/GitHub/ngl_server/public/cpp/tools/db/sql/mysql/nmysql.h
- E:/GitHub/ngl_server/public/cpp/tools/db/sql/mysql/nmysql.cpp