Connection

A class representing a database connection.

If you are using Vibe.d, consider using mysql.pool.MySQLPool instead of creating a new Connection directly. That will provide certain benefits, such as reusing old connections and automatic cleanup (no need to close the connection when done).

// Suggested usage:

{
	auto con = new Connection("host=localhost;port=3306;user=joe;pwd=pass123;db=myappsdb");
	scope(exit) con.close();

	// Use the connection
	...
}
class Connection {}

Constructors

this
this(string host, string user, string pwd, string db, ushort port, SvrCapFlags capFlags)
this(MySQLSocketType socketType, string host, string user, string pwd, string db, ushort port, SvrCapFlags capFlags)
this(OpenSocketCallbackPhobos openSocket, string host, string user, string pwd, string db, ushort port, SvrCapFlags capFlags)
this(OpenSocketCallbackVibeD openSocket, string host, string user, string pwd, string db, ushort port, SvrCapFlags capFlags)
this(string cs, SvrCapFlags capFlags)
this(MySQLSocketType socketType, string cs, SvrCapFlags capFlags)
this(OpenSocketCallbackPhobos openSocket, string cs, SvrCapFlags capFlags)
this(OpenSocketCallbackVibeD openSocket, string cs, SvrCapFlags capFlags)

Construct opened connection.

Members

Enums

OpenState
enum OpenState
Undocumented in source.

Functions

authenticate
void authenticate(ubyte[] greeting)
Undocumented in source.
autoPurge
void autoPurge()

Called whenever mysql-native needs to send a command to the server and be sure there aren't any pending results (which would prevent a new command from being sent).

buildAuthPacket
ubyte[] buildAuthPacket(ubyte[] token)
Undocumented in source.
bumpPacket
void bumpPacket()
Undocumented in source. Be warned that the author may not have intended to support it.
close
void close()

Explicitly close the connection.

connect
void connect(SvrCapFlags clientCapabilities)
Undocumented in source.
consumeServerInfo
void consumeServerInfo(ubyte[] packet)
Undocumented in source. Be warned that the author may not have intended to support it.
enableMultiStatements
void enableMultiStatements(bool on)

Enable multiple statement commands.

getCmdResponse
OKErrorPacket getCmdResponse(bool asString)
Undocumented in source. Be warned that the author may not have intended to support it.
getCommonCapabilities
SvrCapFlags getCommonCapabilities(SvrCapFlags server, SvrCapFlags client)
Undocumented in source. Be warned that the author may not have intended to support it.
getNextRow
Row getNextRow()

Get the next mysql.result.Row of a pending result set.

getPacket
ubyte[] getPacket()
Undocumented in source. Be warned that the author may not have intended to support it.
getPreparedServerInfo
Nullable!PreparedServerInfo getPreparedServerInfo(string sql)

Returns null if not found

initConnection
void initConnection()
Undocumented in source. Be warned that the author may not have intended to support it.
isRegistered
bool isRegistered(Prepared prepared)
bool isRegistered(string sql)
bool isRegistered(Nullable!PreparedServerInfo info)

Is the given SQL registered on this connection as a prepared statement?

kill
void kill()

Forcefully close the socket without sending the quit command. Needed in case an error leaves communatations in an undefined or non-recoverable state.

makeToken
ubyte[] makeToken(ubyte[] authBuf)
Undocumented in source. Be warned that the author may not have intended to support it.
parseGreeting
ubyte[] parseGreeting()
Undocumented in source. Be warned that the author may not have intended to support it.
pingServer
OKErrorPacket pingServer()

Check the server status.

purgeResult
ulong purgeResult()

Flush any outstanding result set elements.

queueForRelease
void queueForRelease(string sql)

Queue a prepared statement for release.

reconnect
void reconnect()
void reconnect(SvrCapFlags clientCapabilities)

Reconnects to the server using the same connection settings originally used to create the Connection.

refreshServer
OKErrorPacket refreshServer(RefreshFlags flags)

Refresh some feature(s) of the server.

register
void register(Prepared prepared)

Manually register a prepared statement on this connection.

registerIfNeeded
PreparedServerInfo registerIfNeeded(string sql)

If already registered, simply returns the cached PreparedServerInfo.

registerIfNeededImpl
PreparedServerInfo registerIfNeededImpl(string sql)
Undocumented in source. Be warned that the author may not have intended to support it.
release
void release(Prepared prepared)
void release(string sql)

Manually release a prepared statement on this connection.

releaseQueued
void releaseQueued()

Releases all prepared statements that are queued for release.

resetPacket
void resetPacket()
Undocumented in source. Be warned that the author may not have intended to support it.
selectDB
void selectDB(string dbName)

Select a current database.

send
void send(const(ubyte)[] packet)
Undocumented in source.
send
void send(const(ubyte)[] header, const(ubyte)[] data)
Undocumented in source.
sendCmd
void sendCmd(CommandType cmd, const(T)[] data)
Undocumented in source.
serverStats
string serverStats()

Get a textual report on the server status.

setClientFlags
void setClientFlags(SvrCapFlags capFlags)
Undocumented in source. Be warned that the author may not have intended to support it.
unqueueForRelease
void unqueueForRelease(string sql)

Remove a statement from the queue to be released.

Properties

charSet
ubyte charSet [@property getter]

Current character set

closed
bool closed [@property getter]

Check whether this Connection is still connected to the server, or if the connection has been closed.

currentDB
string currentDB [@property getter]

Current database

hasPending
bool hasPending [@property getter]

Gets whether anything (rows, headers or binary) is pending. New commands cannot be sent on a connection while anything is pending (the pending data will automatically be purged.)

lastCommandID
ulong lastCommandID [@property getter]

This gets incremented every time a command is issued or results are purged, so a mysql.result.ResultRange can tell whether it's been invalidated.

lastInsertID
ulong lastInsertID [@property getter]

After a command that inserted a row into a table with an auto-increment ID column, this method allows you to retrieve the last insert ID.

pktNumber
ubyte pktNumber [@property getter]

ordering. First packet should have 0

protocol
ubyte protocol [@property getter]

Return the in-force protocol number.

resultFieldDescriptions
FieldDescription[] resultFieldDescriptions [@property getter]

Gets the result header's field descriptions.

rowsPending
bool rowsPending [@property getter]

Gets whether rows are pending.

serverCapabilities
uint serverCapabilities [@property getter]

Server capability flags

serverStatus
ushort serverStatus [@property getter]

Server status

serverVersion
string serverVersion [@property getter]

Server version

socketType
MySQLSocketType socketType [@property getter]

Socket type being used, Phobos or Vibe.d

Static functions

defaultOpenSocketPhobos
PlainPhobosSocket defaultOpenSocketPhobos(string host, ushort port)
Undocumented in source. Be warned that the author may not have intended to support it.
defaultOpenSocketVibeD
PlainVibeDSocket defaultOpenSocketVibeD(string host, ushort port)
Undocumented in source. Be warned that the author may not have intended to support it.
parseConnectionString
string[] parseConnectionString(string cs)

Parses a connection string of the form "host=localhost;port=3306;user=joe;pwd=pass123;db=myappsdb"

Variables

_binaryPending
bool _binaryPending;
_cCaps
SvrCapFlags _cCaps;
Undocumented in source.
_clientCapabilities
SvrCapFlags _clientCapabilities;
Undocumented in source.
_cpn
ubyte _cpn;

Packet Number in packet header. Serial number to ensure correct

_db
string _db;
Undocumented in source.
_fieldCount
ushort _fieldCount;
_headersPending
bool _headersPending;
Undocumented in source.
_host
string _host;
Undocumented in source.
_insertID
ulong _insertID;
Undocumented in source.
_lastCommandID
ulong _lastCommandID;
Undocumented in source.
_open
OpenState _open;
Undocumented in source.
_openSocketPhobos
OpenSocketCallbackPhobos _openSocketPhobos;
Undocumented in source.
_openSocketVibeD
OpenSocketCallbackVibeD _openSocketVibeD;
Undocumented in source.
_port
ushort _port;
_protocol
ubyte _protocol;
_pwd
string _pwd;
Undocumented in source.
_rowsPending
bool _rowsPending;
Undocumented in source.
_rsh
ResultSetHeaders _rsh;
Undocumented in source.
_sCaps
SvrCapFlags _sCaps;
Undocumented in source.
_sCharSet
ubyte _sCharSet;
Undocumented in source.
_sThread
uint _sThread;
Undocumented in source.
_serverStatus
ushort _serverStatus;
Undocumented in source.
_serverVersion
string _serverVersion;
Undocumented in source.
_socket
MySQLSocket _socket;
Undocumented in source.
_socketType
MySQLSocketType _socketType;
_user
string _user;
Undocumented in source.
preparedLookup
PreparedServerInfo[string] preparedLookup;

Lookup per-connection prepared statement info by SQL

Meta