NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
mysql_prepared_statement.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_MYSQL_PREPARED_STATEMENT_HPP__
2#define NEFORCE_DATABASE_MYSQL_PREPARED_STATEMENT_HPP__
3
10
11#ifdef NEFORCE_SUPPORT_MYSQL
12# include <mysql/mysql.h>
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
43class NEFORCE_API mysql_prepared_statement final : public idb_prepared_statement {
44private:
45 ::MYSQL_STMT* stmt_ = nullptr;
46 ::MYSQL* conn_ = nullptr;
47 uint32_t param_count_ = 0;
48
49 vector<::MYSQL_BIND> bind_params_;
50 vector<vector<char>> param_buffers_;
51
52public:
62
68
75
78
85
90 NEFORCE_NODISCARD uint32_t param_count() const noexcept override { return param_count_; }
91
98 bool bind_param(uint32_t index, const string& value) override { return bind_param(index, value.view()); }
99
106 bool bind_param(uint32_t index, string_view value) override;
107
114 bool bind_param(uint32_t index, const char* value) override { return bind_param(index, string_view{value}); }
115
122 bool bind_param(uint32_t index, int32_t value) override;
123
130 bool bind_param(uint32_t index, int64_t value) override;
131
138 bool bind_param(uint32_t index, float64_t value) override;
139
146 bool bind_param(uint32_t index, cbyte_view value) override;
147
154 bool execute() override;
155
162 NEFORCE_NODISCARD unique_ptr<idb_prepared_result> execute_query() override;
163
168 NEFORCE_NODISCARD string_view get_error() const noexcept override;
169
174 NEFORCE_NODISCARD uint32_t get_errno() const noexcept override;
175};
176 // MySQL
178 // Database
180
181NEFORCE_END_NAMESPACE__
182#endif // NEFORCE_SUPPORT_MYSQL
183#endif // NEFORCE_DATABASE_MYSQL_PREPARED_STATEMENT_HPP__
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 view_type view() const noexcept
获取字符串视图
bool bind_param(uint32_t index, int32_t value) override
绑定32位整数参数
bool bind_param(uint32_t index, const char *value) override
绑定C字符串参数
bool bind_param(uint32_t index, const string &value) override
绑定字符串参数
bool bind_param(uint32_t index, string_view value) override
绑定字符串视图参数
bool execute() override
执行非查询语句
NEFORCE_NODISCARD unique_ptr< idb_prepared_result > execute_query() override
执行查询语句
~mysql_prepared_statement() override
析构函数
mysql_prepared_statement(::MYSQL *conn, string_view sql)
构造函数
mysql_prepared_statement & operator=(mysql_prepared_statement &&other) noexcept
移动赋值运算符
mysql_prepared_statement(mysql_prepared_statement &&other) noexcept
移动构造函数
bool bind_param(uint32_t index, int64_t value) override
绑定64位整数参数
NEFORCE_NODISCARD uint32_t get_errno() const noexcept override
获取错误码
bool bind_param(uint32_t index, float64_t value) override
绑定浮点数参数
bool bind_param(uint32_t index, cbyte_view value) override
绑定二进制数据参数
NEFORCE_NODISCARD string_view get_error() const noexcept override
获取错误信息
NEFORCE_NODISCARD uint32_t param_count() const noexcept override
获取参数数量
独占智能指针
动态大小数组容器
数据库抽象接口层
unsigned int uint32_t
32位无符号整数类型
long long int64_t
64位有符号整数类型
double float64_t
64位双精度浮点数类型
int int32_t
32位有符号整数类型
@ MYSQL
MySQL数据库
memory_view< const byte_t > cbyte_view
常量字节视图类型别名
basic_string_view< char > string_view
字符字符串视图
预处理语句抽象基类