#include <connection.h>
Inheritance diagram for mysqlpp::Connection:
Public Member Functions | |
Connection (bool te=true) | |
Create object without connecting to the database server. | |
Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0) | |
Create object and connect to database server in one step. | |
Connection (const Connection &other) | |
Establish a new connection using the same parameters as an existing connection. | |
virtual | ~Connection () |
Destroy object. | |
std::string | client_version () const |
Get version of library underpinning the current database driver. | |
virtual bool | connect (const char *db=0, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0) |
Connect to database after object is created. | |
bool | connected () const |
Returns true if connection was established successfully. | |
ulonglong | count_rows (const std::string &table) |
Returns the number of rows in a table. | |
bool | create_db (const std::string &db) |
Ask the database server to create a database. | |
void | disconnect () |
Drop the connection to the database server. | |
DBDriver * | driver () |
Returns a reference to the current database driver. | |
bool | drop_db (const std::string &db) |
Asks the database server to drop (destroy) a database. | |
int | errnum () |
Return last error number associated with this connection. | |
const char * | error () const |
Return error message for last error associated with this connection. | |
std::string | ipc_info () const |
Get information about the IPC connection to the database server. | |
bool | kill (unsigned long tid) const |
Kill a database server thread. | |
operator private_bool_type () const | |
Test whether any error has occurred within the object. | |
Connection & | operator= (const Connection &rhs) |
Copy an existing Connection object's state into this object. | |
bool | ping () |
"Pings" the database server | |
int | protocol_version () const |
Returns version number of the protocol the database driver uses to communicate with the server. | |
Query | query (const char *qstr=0) |
Return a new query object. | |
Query | query (const std::string &qstr) |
Return a new query object. | |
bool | select_db (const std::string &db) |
Change to a different database managed by the database server we are connected to. | |
std::string | server_version () const |
Get the database server's version string. | |
bool | set_option (Option *o) |
Sets a connection option. | |
bool | shutdown () |
Ask database server to shut down. | |
std::string | server_status () const |
Returns information about database server's status. | |
bool | thread_aware () const |
Returns true if both MySQL++ and database driver we're using were compiled with thread awareness. | |
void | thread_end () |
Tells the underlying database driver that this thread is done using the library. | |
unsigned long | thread_id () |
Returns the database server's thread ID for this connection. | |
bool | thread_start () |
Tells the underlying database driver that the current thread is now using its services. | |
Protected Member Functions | |
void | build_error_message (const char *core) |
Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server. | |
void | copy (const Connection &other) |
Establish a new connection as a copy of an existing one. | |
bool | parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name) |
Extract elements from the server parameter in formats suitable for passing to DBDriver::connect(). | |
Protected Attributes | |
std::string | error_message_ |
MySQL++ specific error, if any. |
This class is a thick wrapper around DBDriver, adding high-level error handling, utility functions, and abstraction away from underlying C API details.
mysqlpp::Connection::Connection | ( | bool | te = true |
) |
Create object without connecting to the database server.
te | if true, exceptions are thrown on errors |
mysqlpp::Connection::Connection | ( | const char * | db, | |
const char * | server = 0 , |
|||
const char * | user = 0 , |
|||
const char * | password = 0 , |
|||
unsigned int | port = 0 | |||
) |
Create object and connect to database server in one step.
This constructor allows you to most fully specify the options used when connecting to the database server.
db | name of database to select upon connection | |
server | specifies the IPC method and parameters for contacting the server; see below for details | |
user | user name to log in under, or 0 to use the user name this program is running under | |
password | password to use when logging in | |
port | TCP port number database server is listening on, or 0 to use default value; note that you may also give this as part of the server parameter |
port
parameter, the latter takes precedence. mysqlpp::Connection::Connection | ( | const Connection & | other | ) |
Establish a new connection using the same parameters as an existing connection.
other | existing Connection object |
bool mysqlpp::Connection::connect | ( | const char * | db = 0 , |
|
const char * | server = 0 , |
|||
const char * | user = 0 , |
|||
const char * | password = 0 , |
|||
unsigned int | port = 0 | |||
) | [virtual] |
Connect to database after object is created.
It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.
If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.
bool mysqlpp::Connection::connected | ( | ) | const |
Returns true if connection was established successfully.
void mysqlpp::Connection::copy | ( | const Connection & | other | ) | [protected] |
Establish a new connection as a copy of an existing one.
other | the connection to copy |
ulonglong mysqlpp::Connection::count_rows | ( | const std::string & | table | ) |
Returns the number of rows in a table.
table | name of table whose rows you want counted |
SELECT
COUNT(*)
FROM
table
SQL query.
bool mysqlpp::Connection::create_db | ( | const std::string & | db | ) |
Ask the database server to create a database.
db | name of database to create |
bool mysqlpp::Connection::drop_db | ( | const std::string & | db | ) |
Asks the database server to drop (destroy) a database.
db | name of database to destroy |
const char * mysqlpp::Connection::error | ( | ) | const |
Return error message for last error associated with this connection.
Returns either a MySQL++-specific error message if one exists, or one from the current database driver otherwise.
std::string mysqlpp::Connection::ipc_info | ( | ) | const |
Get information about the IPC connection to the database server.
String contains info about type of connection (e.g. TCP/IP, named pipe, Unix socket...) and the server hostname.
bool mysqlpp::Connection::kill | ( | unsigned long | tid | ) | const |
mysqlpp::Connection::operator private_bool_type | ( | ) | const [inline] |
Test whether any error has occurred within the object.
Allows the object to be used in bool context, like this:
///
Prior to MySQL++ v3, the object was always falsy when we weren't connected. Now a true return simply indicates a lack of errors. If you've been using this to test for whether the connection is still up, you need to call connected() instead.
bool mysqlpp::Connection::ping | ( | ) |
"Pings" the database server
true | if server is responding | |
false | if either we already know the connection is down and cannot re-establish it, or if the server did not respond to the ping and we could not re-establish the connection. |
Query mysqlpp::Connection::query | ( | const std::string & | qstr | ) |
Return a new query object.
qstr | initial query string |
Query mysqlpp::Connection::query | ( | const char * | qstr = 0 |
) |
bool mysqlpp::Connection::select_db | ( | const std::string & | db | ) |
Change to a different database managed by the database server we are connected to.
db | database to switch to |
true | if we changed databases successfully |
bool mysqlpp::Connection::set_option | ( | Option * | o | ) |
Sets a connection option.
o | pointer to any derivative of Option allocated on the heap |
Because there are so many Option subclasses, the actual effect of this function has a wide range. This mechanism abstracts away many things that are unrelated down at the database driver level, hiding them behind a coherent, type-safe interface.
The rules about which options can be set, when, are up to the underlying database driver. Some must be set before the connection is established because they can only be used during that connection setup process. Others can be set at any time after the connection comes up. If you get it wrong, you'll get a BadOption exception.
true | if option was successfully set |
unsigned long mysqlpp::Connection::thread_id | ( | ) |
Returns the database server's thread ID for this connection.
This has nothing to do with threading on the client side. The only thing you can do with this value is pass it to kill().
bool mysqlpp::Connection::thread_start | ( | ) |
Tells the underlying database driver that the current thread is now using its services.
It's not necessary to call this from the thread that creates the connection as it's done automatically. This method exists for times when multiple threads may use this object; it allows the underlying database driver to set up any per-thread data structures it needs.
The MySQL++ user manual's chapter on threads details two major strategies for dealing with connections in the face of threads. The Connection-per-thread option frees you from ever having to call this method. The other documented strategy is to use ConnectionPool, which opens the possibility for one thread to create a connection that another uses, so you do need to call this method in that case, or with any other similar strategy.
True | if there was no problem |