libdballe  9.11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dballe::sql::MySQLConnection Class Reference

Database connection. More...

#include <mysql.h>

Inheritance diagram for dballe::sql::MySQLConnection:
dballe::sql::Connection

Public Member Functions

 MySQLConnection (const MySQLConnection &)=delete
 
 MySQLConnection (const MySQLConnection &&)=delete
 
MySQLConnectionoperator= (const MySQLConnection &)=delete
 
MySQLConnectionoperator= (const MySQLConnection &&)=delete
 
 operator MYSQL * ()
 
void open_url (const std::string &url)
 
void open_test ()
 
std::string escape (const char *str)
 Escape a C string.
 
std::string escape (const std::string &str)
 Escape a string.
 
std::string escape (const std::vector< uint8_t > &str)
 Escape a byte buffer.
 
void exec_no_data_nothrow (const char *query) noexcept
 Run a query throwing no exceptions, warning on stderr if it is not successful or if it gives a nonempty result.
 
void exec_no_data (const char *query)
 
void exec_no_data (const std::string &query)
 
mysql::Result exec_store (const char *query)
 
mysql::Result exec_store (const std::string &query)
 
void exec_use (const char *query, std::function< void(const mysql::Row &)> dest)
 
void exec_use (const std::string &query, std::function< void(const mysql::Row &)> dest)
 
std::unique_ptr< Transactiontransaction (bool readonly=false) override
 Begin a transaction. More...
 
bool has_table (const std::string &name) override
 Check if the database contains a table.
 
std::string get_setting (const std::string &key) override
 Get a value from the settings table. More...
 
void set_setting (const std::string &key, const std::string &value) override
 Set a value in the settings table. More...
 
void drop_settings () override
 Drop the settings table.
 
void execute (const std::string &query) override
 Execute a query without reading its results.
 
void explain (const std::string &query, FILE *out) override
 Format and print the EXPLAIN output for the query to the given file.
 
void drop_table_if_exists (const char *name)
 Delete a table in the database if it exists, otherwise do nothing.
 
int get_last_insert_id ()
 Return LAST_INSERT_ID or LAST_INSER_ROWID or whatever is appropriate for the current database, if supported. More...
 
- Public Member Functions inherited from dballe::sql::Connection
const std::string & get_url () const
 
virtual void add_datetime (Querybuf &qb, const Datetime &dt) const
 Format a datetime and add it to the querybuf.
 

Static Public Member Functions

static std::shared_ptr< MySQLConnectioncreate ()
 
- Static Public Member Functions inherited from dballe::sql::Connection
static std::shared_ptr< Connectioncreate (const DBConnectOptions &options)
 Create a new connection from a URL.
 

Protected Member Functions

void send_result (mysql::Result &&res, std::function< void(const mysql::Row &)> dest)
 
void init_after_connect ()
 
void open (const mysql::ConnectInfo &info)
 
void fork_prepare () override
 
void fork_parent () override
 
void fork_child () override
 
void check_connection ()
 
- Protected Member Functions inherited from dballe::sql::Connection
void register_atfork ()
 Register this connection to be notified in case of fork()-ing.
 

Protected Attributes

MYSQL * db = nullptr
 Database connection.
 
bool forked = false
 Marker to catch attempts to reuse connections in forked processes.
 
- Protected Attributes inherited from dballe::sql::Connection
std::string url
 

Additional Inherited Members

- Public Attributes inherited from dballe::sql::Connection
ServerType server_type
 Type of SQL server we are connected to. More...
 

Detailed Description

Database connection.

Member Function Documentation

◆ get_last_insert_id()

int dballe::sql::MySQLConnection::get_last_insert_id ( )

Return LAST_INSERT_ID or LAST_INSER_ROWID or whatever is appropriate for the current database, if supported.

If not supported, an exception is thrown.

◆ get_setting()

std::string dballe::sql::MySQLConnection::get_setting ( const std::string &  key)
overridevirtual

Get a value from the settings table.

Returns the empty string if the table does not exist.

Implements dballe::sql::Connection.

◆ set_setting()

void dballe::sql::MySQLConnection::set_setting ( const std::string &  key,
const std::string &  value 
)
overridevirtual

Set a value in the settings table.

The table is created if it does not exist.

Implements dballe::sql::Connection.

◆ transaction()

std::unique_ptr<Transaction> dballe::sql::MySQLConnection::transaction ( bool  readonly = false)
overridevirtual

Begin a transaction.

The transaction will be controller by the returned Transaction object, and will end when its destuctor is called.

Implements dballe::sql::Connection.


The documentation for this class was generated from the following file: