mysql-d 0.3.3

Mysql client C library binding.


To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Mysql.d

mysql library binding. Extraction from https://github.com/adamdruppe/arsd

Build Status

Documentation is not ready yet

import std.stdio;
import mysql.d;

void main() {
    auto mysql = new Mysql("localhost", 3306, "root", "root", "mysql_d_testing");

    mysql.query("DROP TABLE IF EXISTS users");
    mysql.query("CREATE TABLE users (
        id INT NOT NULL AUTO_INCREMENT,
        name VARCHAR(100),
        sex tinyint(1) DEFAULT NULL,
        birthdate DATE,
        PRIMARY KEY (id)
    );");

    mysql.query("insert into users (name, sex, birthdate) values (?, ?, ?);", "Paul", 1, "1981-05-06");
    mysql.query("insert into users (name, sex, birthdate) values (?, ?, ?);", "Anna", 0, "1983-02-13");

    auto rows = mysql.query("select * from users");

    rows.length; // => 2
    foreach (user; rows) {
        writefln("User %s, %s, born on %s", user["name"], user["sex"] == "1" ? "male" : "female", user["birthdate"]);
    }

    bool result = mysql.exec("select name, gender from users");
    if (!result) {
      writefln("SQL Error: %s", mysql.dbErrorMsg);
    }
}

Output is:

User Paul, male, born on 1981-05-06
User Anna, female, born on 1983-02-13

Escaping

? - convert to string with escaped quotes to prevent sql injection
`?` - convert to string but without quotes

mysql.query("DROP TABLE ?", "table_name"); // error
// SQL error near near ''table_name'' at line 1 :::: DROP TABLE 'table_name'
// should be `some_table` not 'some_table'

mysql.query("DROP TABLE `?`", "table_name"); // working
Compiling
  • Install dub with brew install dub or from here http://code.dlang.org/download
  • Run dub
Testing
  • run dub test --config=test

Example application

http://mysql-d.tk/

Authors:
Pavel Evstigneev, Adam D. Ruppe
Dependencies:
none
System dependencies:
mysqlclient
Versions:
0.3.3 2016-Jul-28
0.3.2 2015-Sep-03
0.3.1 2015-Jan-10
0.3.0 2014-Aug-31
0.2.0 2014-Jul-01
Show all 7 versions
Download Stats:
  • 31 downloads today

  • 164 downloads this week

  • 548 downloads this month

  • 6803 downloads total