MySql

The main class for accessing the MySql database.

// connect to database with the constructor
auto db = new MySql("localhost", "my_user", "my_password", "my_database_name");
// use the query function to execute sql...
// use ? for data placeholders...
db.query("INSERT INTO people (id, name) VALUES (?, ?)", 10, "My Name");
// and use foreach to loop over result sets
foreach(row; db.query("SELECT id, name FROM people ORDER BY name LIMIT 10"))
	writeln(row[0], " ", row["name"]); // index and name supported

Destructor

A destructor is present on this object, but not explicitly documented in the source.

Members

Functions

affectedRows
int affectedRows()
insert
int insert(string table, MySqlResult result, string[string] columnsToModify, string[] columnsToSkip)

Builds and executes an INERT INTO statement

lastInsertId
int lastInsertId()
queryDataObject
ResultByDataObject!R queryDataObject(string sql, T t)
queryDataObjectWithCustomKeys
ResultByDataObject!R queryDataObjectWithCustomKeys(string[string] keyMapping, string sql, T t)

Gets a minimal ORM object from a query

startTransaction
void startTransaction()

Inherited Members

From Database

queryImpl
ResultSet queryImpl(string sql, Variant[] args)

Actually implements the query for the database. The query() method below might be easier to use.

escape
string escape(string sqlData)

Escapes data for inclusion into an sql string literal

escapeBinaryString
string escapeBinaryString(const(ubyte)[] sqlData)

Escapes binary data for inclusion into a sql string. Note that unlike escape, the returned string here SHOULD include the quotes.

startTransaction
void startTransaction()

query to start a transaction, only here because sqlite is apparently different in syntax...

query
ResultSet query(string sql, T t)

Just executes a query. It supports placeholders for parameters

sysTimeToValue
string sysTimeToValue(SysTime )

turns a systime into a value understandable by the target database as a timestamp to be concated into a query. so it should be quoted and escaped etc as necessary

Suggestion Box / Bug Report