Class Mysql
In: mysql.c
Parent: Object

Methods

Classes and Modules

Class Mysql::Error
Class Mysql::Field
Class Mysql::Result
Class Mysql::RowOffset
Class Mysql::Stmt
Class Mysql::Time

Constants

VERSION = INT2FIX(MYSQL_RUBY_VERSION)   Mysql constant
OPT_CONNECT_TIMEOUT = INT2NUM(MYSQL_OPT_CONNECT_TIMEOUT)
OPT_COMPRESS = INT2NUM(MYSQL_OPT_COMPRESS)
OPT_NAMED_PIPE = INT2NUM(MYSQL_OPT_NAMED_PIPE)
INIT_COMMAND = INT2NUM(MYSQL_INIT_COMMAND)
READ_DEFAULT_FILE = INT2NUM(MYSQL_READ_DEFAULT_FILE)
READ_DEFAULT_GROUP = INT2NUM(MYSQL_READ_DEFAULT_GROUP)
SET_CHARSET_DIR = INT2NUM(MYSQL_SET_CHARSET_DIR)
SET_CHARSET_NAME = INT2NUM(MYSQL_SET_CHARSET_NAME)
OPT_LOCAL_INFILE = INT2NUM(MYSQL_OPT_LOCAL_INFILE)
OPT_PROTOCOL = INT2NUM(MYSQL_OPT_PROTOCOL)
SHARED_MEMORY_BASE_NAME = INT2NUM(MYSQL_SHARED_MEMORY_BASE_NAME)
OPT_READ_TIMEOUT = INT2NUM(MYSQL_OPT_READ_TIMEOUT)
OPT_WRITE_TIMEOUT = INT2NUM(MYSQL_OPT_WRITE_TIMEOUT)
SECURE_AUTH = INT2NUM(MYSQL_SECURE_AUTH)
OPT_GUESS_CONNECTION = INT2NUM(MYSQL_OPT_GUESS_CONNECTION)
OPT_USE_EMBEDDED_CONNECTION = INT2NUM(MYSQL_OPT_USE_EMBEDDED_CONNECTION)
OPT_USE_REMOTE_CONNECTION = INT2NUM(MYSQL_OPT_USE_REMOTE_CONNECTION)
SET_CLIENT_IP = INT2NUM(MYSQL_SET_CLIENT_IP)
REFRESH_GRANT = INT2NUM(REFRESH_GRANT)
REFRESH_LOG = INT2NUM(REFRESH_LOG)
REFRESH_TABLES = INT2NUM(REFRESH_TABLES)
REFRESH_HOSTS = INT2NUM(REFRESH_HOSTS)
REFRESH_STATUS = INT2NUM(REFRESH_STATUS)
REFRESH_THREADS = INT2NUM(REFRESH_THREADS)
REFRESH_SLAVE = INT2NUM(REFRESH_SLAVE)
REFRESH_MASTER = INT2NUM(REFRESH_MASTER)
CLIENT_FOUND_ROWS = INT2NUM(CLIENT_FOUND_ROWS)
CLIENT_NO_SCHEMA = INT2NUM(CLIENT_NO_SCHEMA)
CLIENT_COMPRESS = INT2NUM(CLIENT_COMPRESS)
CLIENT_ODBC = INT2NUM(CLIENT_ODBC)
CLIENT_LOCAL_FILES = INT2NUM(CLIENT_LOCAL_FILES)
CLIENT_IGNORE_SPACE = INT2NUM(CLIENT_IGNORE_SPACE)
CLIENT_CHANGE_USER = INT2NUM(CLIENT_CHANGE_USER)
CLIENT_INTERACTIVE = INT2NUM(CLIENT_INTERACTIVE)
CLIENT_SSL = INT2NUM(CLIENT_SSL)
CLIENT_IGNORE_SIGPIPE = INT2NUM(CLIENT_IGNORE_SIGPIPE)
CLIENT_TRANSACTIONS = INT2NUM(CLIENT_TRANSACTIONS)
CLIENT_MULTI_STATEMENTS = INT2NUM(CLIENT_MULTI_STATEMENTS)
CLIENT_MULTI_RESULTS = INT2NUM(CLIENT_MULTI_RESULTS)
OPTION_MULTI_STATEMENTS_ON = INT2NUM(MYSQL_OPTION_MULTI_STATEMENTS_ON)
OPTION_MULTI_STATEMENTS_OFF = INT2NUM(MYSQL_OPTION_MULTI_STATEMENTS_OFF)

Public Class methods

client_info()

[Source]

/*      client_info()        */
static VALUE client_info(VALUE klass)
{
    return rb_tainted_str_new2(mysql_get_client_info());
}

client_version()

[Source]

/*      client_version()     */
static VALUE client_version(VALUE obj)
{
    return INT2NUM(mysql_get_client_version());
}

real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)

[Source]

/*      real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)   */
static VALUE real_connect(int argc, VALUE* argv, VALUE klass)
{
    VALUE host, user, passwd, db, port, sock, flag;
    char *h, *u, *p, *d, *s;
    unsigned int pp, f;
    struct mysql* myp;
    VALUE obj;

#if MYSQL_VERSION_ID >= 32200
    rb_scan_args(argc, argv, "07", &host, &user, &passwd, &db, &port, &sock, &flag);
    d = NILorSTRING(db);
    f = NILorINT(flag);
#elif MYSQL_VERSION_ID >= 32115
    rb_scan_args(argc, argv, "06", &host, &user, &passwd, &port, &sock, &flag);
    f = NILorINT(flag);
#else
    rb_scan_args(argc, argv, "05", &host, &user, &passwd, &port, &sock);
#endif
    h = NILorSTRING(host);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    pp = NILorINT(port);
    s = NILorSTRING(sock);

    obj = Data_Make_Struct(klass, struct mysql, 0, free_mysql, myp);
#if MYSQL_VERSION_ID >= 32200
    mysql_init(&myp->handler);
    if (mysql_real_connect(&myp->handler, h, u, p, d, pp, s, f) == NULL)
#elif MYSQL_VERSION_ID >= 32115
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s, f) == NULL)
#else
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s) == NULL)
#endif
        mysql_raise(&myp->handler);

    myp->handler.reconnect = 0;
    myp->connection = Qtrue;
    myp->query_with_result = Qtrue;
    rb_obj_call_init(obj, argc, argv);

    return obj;
}

my_debug(string)

[Source]

/*      my_debug(string)     */
static VALUE my_debug(VALUE obj, VALUE str)
{
    mysql_debug(StringValuePtr(str));
    return obj;
}

escape_string(string)

[Source]

/*      escape_string(string)        */
static VALUE escape_string(VALUE klass, VALUE str)
{
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_escape_string(RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

client_info()

[Source]

/*      client_info()        */
static VALUE client_info(VALUE klass)
{
    return rb_tainted_str_new2(mysql_get_client_info());
}

client_version()

[Source]

/*      client_version()     */
static VALUE client_version(VALUE obj)
{
    return INT2NUM(mysql_get_client_version());
}

init()

[Source]

/*      init()       */
static VALUE init(VALUE klass)
{
    struct mysql* myp;
    VALUE obj;

    obj = Data_Make_Struct(klass, struct mysql, 0, free_mysql, myp);
    mysql_init(&myp->handler);
    myp->connection = Qfalse;
    myp->query_with_result = Qtrue;
    rb_obj_call_init(obj, 0, NULL);
    return obj;
}

initialize()

[Source]

/*      initialize() */
static VALUE initialize(int argc, VALUE* argv, VALUE obj)
{
    return obj;
}

real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)

[Source]

/*      real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)   */
static VALUE real_connect(int argc, VALUE* argv, VALUE klass)
{
    VALUE host, user, passwd, db, port, sock, flag;
    char *h, *u, *p, *d, *s;
    unsigned int pp, f;
    struct mysql* myp;
    VALUE obj;

#if MYSQL_VERSION_ID >= 32200
    rb_scan_args(argc, argv, "07", &host, &user, &passwd, &db, &port, &sock, &flag);
    d = NILorSTRING(db);
    f = NILorINT(flag);
#elif MYSQL_VERSION_ID >= 32115
    rb_scan_args(argc, argv, "06", &host, &user, &passwd, &port, &sock, &flag);
    f = NILorINT(flag);
#else
    rb_scan_args(argc, argv, "05", &host, &user, &passwd, &port, &sock);
#endif
    h = NILorSTRING(host);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    pp = NILorINT(port);
    s = NILorSTRING(sock);

    obj = Data_Make_Struct(klass, struct mysql, 0, free_mysql, myp);
#if MYSQL_VERSION_ID >= 32200
    mysql_init(&myp->handler);
    if (mysql_real_connect(&myp->handler, h, u, p, d, pp, s, f) == NULL)
#elif MYSQL_VERSION_ID >= 32115
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s, f) == NULL)
#else
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s) == NULL)
#endif
        mysql_raise(&myp->handler);

    myp->handler.reconnect = 0;
    myp->connection = Qtrue;
    myp->query_with_result = Qtrue;
    rb_obj_call_init(obj, argc, argv);

    return obj;
}

escape_string(string)

[Source]

/*      escape_string(string)        */
static VALUE escape_string(VALUE klass, VALUE str)
{
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_escape_string(RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)

[Source]

/*      real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)   */
static VALUE real_connect(int argc, VALUE* argv, VALUE klass)
{
    VALUE host, user, passwd, db, port, sock, flag;
    char *h, *u, *p, *d, *s;
    unsigned int pp, f;
    struct mysql* myp;
    VALUE obj;

#if MYSQL_VERSION_ID >= 32200
    rb_scan_args(argc, argv, "07", &host, &user, &passwd, &db, &port, &sock, &flag);
    d = NILorSTRING(db);
    f = NILorINT(flag);
#elif MYSQL_VERSION_ID >= 32115
    rb_scan_args(argc, argv, "06", &host, &user, &passwd, &port, &sock, &flag);
    f = NILorINT(flag);
#else
    rb_scan_args(argc, argv, "05", &host, &user, &passwd, &port, &sock);
#endif
    h = NILorSTRING(host);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    pp = NILorINT(port);
    s = NILorSTRING(sock);

    obj = Data_Make_Struct(klass, struct mysql, 0, free_mysql, myp);
#if MYSQL_VERSION_ID >= 32200
    mysql_init(&myp->handler);
    if (mysql_real_connect(&myp->handler, h, u, p, d, pp, s, f) == NULL)
#elif MYSQL_VERSION_ID >= 32115
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s, f) == NULL)
#else
    if (mysql_real_connect(&myp->handler, h, u, p, pp, s) == NULL)
#endif
        mysql_raise(&myp->handler);

    myp->handler.reconnect = 0;
    myp->connection = Qtrue;
    myp->query_with_result = Qtrue;
    rb_obj_call_init(obj, argc, argv);

    return obj;
}

Public Instance methods

affected_rows()

[Source]

/*      affected_rows()      */
static VALUE affected_rows(VALUE obj)
{
    return INT2NUM(mysql_affected_rows(GetHandler(obj)));
}

autocommit()

[Source]

/*      autocommit() */
static VALUE autocommit(VALUE obj, VALUE mode)
{
    MYSQL* m = GetHandler(obj);
    int f;
    f = (mode == Qnil || mode == Qfalse || (rb_type(mode) == T_FIXNUM && NUM2INT(mode) == 0)) ? 0 : 1;
    if (mysql_autocommit(m, f) != 0)
        mysql_raise(m);
    return obj;
}

change_user(user=nil, passwd=nil, db=nil)

[Source]

/*      change_user(user=nil, passwd=nil, db=nil)    */
static VALUE change_user(int argc, VALUE* argv, VALUE obj)
{
    VALUE user, passwd, db;
    char *u, *p, *d;
    MYSQL* m = GetHandler(obj);
    rb_scan_args(argc, argv, "03", &user, &passwd, &db);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    d = NILorSTRING(db);
    if (mysql_change_user(m, u, p, d) != 0)
        mysql_raise(m);
    return obj;
}

character_set_name()

[Source]

/*      character_set_name() */
static VALUE character_set_name(VALUE obj)
{
    return rb_tainted_str_new2(mysql_character_set_name(GetHandler(obj)));
}

client_info()

[Source]

/*      client_info()        */
static VALUE client_info(VALUE klass)
{
    return rb_tainted_str_new2(mysql_get_client_info());
}

client_version()

[Source]

/*      client_version()     */
static VALUE client_version(VALUE obj)
{
    return INT2NUM(mysql_get_client_version());
}

close()

[Source]

/*      close()              */
static VALUE my_close(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    mysql_close(m);
    if (mysql_errno(m))
        mysql_raise(m);
    GetMysqlStruct(obj)->connection = Qfalse;
    return obj;
}

commit()

[Source]

/*      commit()     */
static VALUE commit(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_commit(m) != 0)
        mysql_raise(m);
    return obj;
}

real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)

[Source]

/*      real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)   */
static VALUE real_connect2(int argc, VALUE* argv, VALUE obj)
{
    VALUE host, user, passwd, db, port, sock, flag;
    char *h, *u, *p, *d, *s;
    unsigned int pp, f;
    MYSQL* m = GetHandler(obj);
    rb_scan_args(argc, argv, "07", &host, &user, &passwd, &db, &port, &sock, &flag);
    d = NILorSTRING(db);
    f = NILorINT(flag);
    h = NILorSTRING(host);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    pp = NILorINT(port);
    s = NILorSTRING(sock);

    if (mysql_real_connect(m, h, u, p, d, pp, s, f) == NULL)
        mysql_raise(m);
    m->reconnect = 0;
    GetMysqlStruct(obj)->connection = Qtrue;

    return obj;
}

create_db(db)

[Source]

/*      create_db(db)        */
static VALUE create_db(VALUE obj, VALUE db)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_create_db(m, StringValuePtr(db)) != 0)
        mysql_raise(m);
    return obj;
}

drop_db(db)

[Source]

/*      drop_db(db)  */
static VALUE drop_db(VALUE obj, VALUE db)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_drop_db(m, StringValuePtr(db)) != 0)
        mysql_raise(m);
    return obj;
}

dump_debug_info()

[Source]

/*      dump_debug_info()    */
static VALUE dump_debug_info(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_dump_debug_info(m) != 0)
        mysql_raise(m);
    return obj;
}

errno()

[Source]

/*      errno()              */
static VALUE my_errno(VALUE obj)
{
    return INT2NUM(mysql_errno(GetHandler(obj)));
}

error()

[Source]

/*      error()              */
static VALUE my_error(VALUE obj)
{
    return rb_str_new2(mysql_error(GetHandler(obj)));
}

escape_string(string)

[Source]

/*      escape_string(string)        */
static VALUE escape_string(VALUE klass, VALUE str)
{
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_escape_string(RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

real_escape_string(string)

[Source]

/*      real_escape_string(string)   */
static VALUE real_escape_string(VALUE obj, VALUE str)
{
    MYSQL* m = GetHandler(obj);
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_real_escape_string(m, RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

field_count()

[Source]

/*      field_count()        */
static VALUE field_count(VALUE obj)
{
    return INT2NUM(mysql_field_count(GetHandler(obj)));
}

client_info()

[Source]

/*      client_info()        */
static VALUE client_info(VALUE klass)
{
    return rb_tainted_str_new2(mysql_get_client_info());
}

client_version()

[Source]

/*      client_version()     */
static VALUE client_version(VALUE obj)
{
    return INT2NUM(mysql_get_client_version());
}

host_info()

[Source]

/*      host_info()  */
static VALUE host_info(VALUE obj)
{
    return rb_tainted_str_new2(mysql_get_host_info(GetHandler(obj)));
}

proto_info()

[Source]

/*      proto_info() */
static VALUE proto_info(VALUE obj)
{
    return INT2NUM(mysql_get_proto_info(GetHandler(obj)));
}

server_info()

[Source]

/*      server_info()        */
static VALUE server_info(VALUE obj)
{
    return rb_tainted_str_new2(mysql_get_server_info(GetHandler(obj)));
}

server_version()

[Source]

/*      server_version()     */
static VALUE server_version(VALUE obj)
{
    return INT2NUM(mysql_get_server_version(GetHandler(obj)));
}

host_info()

[Source]

/*      host_info()  */
static VALUE host_info(VALUE obj)
{
    return rb_tainted_str_new2(mysql_get_host_info(GetHandler(obj)));
}

info()

[Source]

/*      info()               */
static VALUE info(VALUE obj)
{
    const char* p = mysql_info(GetHandler(obj));
    return p? rb_tainted_str_new2(p): Qnil;
}

insert_id()

[Source]

/*      insert_id()  */
static VALUE insert_id(VALUE obj)
{
    return INT2NUM(mysql_insert_id(GetHandler(obj)));
}

kill(pid)

[Source]

/*      kill(pid)    */
static VALUE my_kill(VALUE obj, VALUE pid)
{
    int p = NUM2INT(pid);
    MYSQL* m = GetHandler(obj);
    if (mysql_kill(m, p) != 0)
        mysql_raise(m);
    return obj;
}

list_dbs(db=nil)

[Source]

/*      list_dbs(db=nil)     */
static VALUE list_dbs(int argc, VALUE* argv, VALUE obj)
{
    unsigned int i, n;
    VALUE db, ret;
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res;

    rb_scan_args(argc, argv, "01", &db);
    res = mysql_list_dbs(m, NILorSTRING(db));
    if (res == NULL)
        mysql_raise(m);

    n = mysql_num_rows(res);
    ret = rb_ary_new2(n);
    for (i=0; i<n; i++)
        rb_ary_store(ret, i, rb_tainted_str_new2(mysql_fetch_row(res)[0]));
    mysql_free_result(res);
    return ret;
}

list_fields(table, field=nil)

[Source]

/*      list_fields(table, field=nil)        */
static VALUE list_fields(int argc, VALUE* argv, VALUE obj)
{
    VALUE table, field;
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res;
    rb_scan_args(argc, argv, "11", &table, &field);
    res = mysql_list_fields(m, StringValuePtr(table), NILorSTRING(field));
    if (res == NULL)
        mysql_raise(m);
    return mysqlres2obj(res);
}

list_processes()

[Source]

/*      list_processes()     */
static VALUE list_processes(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res = mysql_list_processes(m);
    if (res == NULL)
        mysql_raise(m);
    return mysqlres2obj(res);
}

list_tables(table=nil)

[Source]

/*      list_tables(table=nil)       */
static VALUE list_tables(int argc, VALUE* argv, VALUE obj)
{
    VALUE table;
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res;
    unsigned int i, n;
    VALUE ret;

    rb_scan_args(argc, argv, "01", &table);
    res = mysql_list_tables(m, NILorSTRING(table));
    if (res == NULL)
        mysql_raise(m);

    n = mysql_num_rows(res);
    ret = rb_ary_new2(n);
    for (i=0; i<n; i++)
        rb_ary_store(ret, i, rb_tainted_str_new2(mysql_fetch_row(res)[0]));
    mysql_free_result(res);
    return ret;
}

more_results()

[Source]

/*      more_results()               */
static VALUE more_results(VALUE obj)
{
    if (mysql_more_results(GetHandler(obj)) == 0)
        return Qfalse;
    else
        return Qtrue;
}

more_results()

[Source]

/*      more_results()               */
static VALUE more_results(VALUE obj)
{
    if (mysql_more_results(GetHandler(obj)) == 0)
        return Qfalse;
    else
        return Qtrue;
}

options(opt, value=nil)

[Source]

/*      options(opt, value=nil)      */
static VALUE options(int argc, VALUE* argv, VALUE obj)
{
    VALUE opt, val;
    int n;
    my_bool b;
    char* v;
    MYSQL* m = GetHandler(obj);

    rb_scan_args(argc, argv, "11", &opt, &val);
    switch(NUM2INT(opt)) {
    case MYSQL_OPT_CONNECT_TIMEOUT:
#if MYSQL_VERSION_ID >= 40100
    case MYSQL_OPT_PROTOCOL:
#endif
#if MYSQL_VERSION_ID >= 40101
    case MYSQL_OPT_READ_TIMEOUT:
    case MYSQL_OPT_WRITE_TIMEOUT:
#endif
        if (val == Qnil)
            rb_raise(rb_eArgError, "wrong # of arguments(1 for 2)");
        n = NUM2INT(val);
        v = (char*)&n;
        break;
    case MYSQL_INIT_COMMAND:
    case MYSQL_READ_DEFAULT_FILE:
    case MYSQL_READ_DEFAULT_GROUP:
#if MYSQL_VERSION_ID >= 32349
    case MYSQL_SET_CHARSET_DIR:
    case MYSQL_SET_CHARSET_NAME:
#endif
#if MYSQL_VERSION_ID >= 40100
    case MYSQL_SHARED_MEMORY_BASE_NAME:
#endif
#if MYSQL_VERSION_ID >= 40101
    case MYSQL_SET_CLIENT_IP:
#endif
        if (val == Qnil)
            rb_raise(rb_eArgError, "wrong # of arguments(1 for 2)");
        v = StringValuePtr(val);
        break;
#if MYSQL_VERSION_ID >= 40101
    case MYSQL_SECURE_AUTH:
        if (val == Qnil || val == Qfalse)
            b = 1;
        else
            b = 0;
        v = (char*)&b;
        break;
#endif
#if MYSQL_VERSION_ID >= 32349
    case MYSQL_OPT_LOCAL_INFILE:
        if (val == Qnil || val == Qfalse)
            v = NULL;
        else {
            n = 1;
            v = (char*)&n;
        }
        break;
#endif
    default:
        v = NULL;
    }

    if (mysql_options(m, NUM2INT(opt), v) != 0)
        rb_raise(eMysql, "unknown option: %d", NUM2INT(opt));
    return obj;
}

ping()

[Source]

/*      ping()               */
static VALUE ping(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_ping(m) != 0)
        mysql_raise(m);
    return obj;
}

prepare(query)

[Source]

/*      prepare(query)       */
static VALUE prepare(VALUE obj, VALUE query)
{
    VALUE st;
    st = stmt_init(obj);
    return stmt_prepare(st, query);
}

proto_info()

[Source]

/*      proto_info() */
static VALUE proto_info(VALUE obj)
{
    return INT2NUM(mysql_get_proto_info(GetHandler(obj)));
}

query(sql)

[Source]

/*      query(sql)   */
static VALUE query(VALUE obj, VALUE sql)
{
    MYSQL* m = GetHandler(obj);
    Check_Type(sql, T_STRING);
    if (rb_block_given_p()) {
#if MYSQL_VERSION_ID >= 40101
        if (mysql_get_server_version(m) >= 40101 && mysql_set_server_option(m, MYSQL_OPTION_MULTI_STATEMENTS_ON) != 0)
            mysql_raise(m);
#endif
        if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
            mysql_raise(m);
        do {
            MYSQL_RES* res = mysql_store_result(m);
            if (res == NULL) {
                if (mysql_field_count(m) != 0)
                    mysql_raise(m);
            } else {
                VALUE robj = mysqlres2obj(res);
                rb_ensure(rb_yield, robj, res_free, robj);
            }
        }
#if MYSQL_VERSION_ID >= 40101
        while (mysql_next_result(m) == 0);
#else
        while (0);
#endif
        return obj;
    }
    if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
        mysql_raise(m);
    if (GetMysqlStruct(obj)->query_with_result == Qfalse)
        return obj;
    if (mysql_field_count(m) == 0)
        return Qnil;
    return store_result(obj);
}

query_with_result()

[Source]

/*      query_with_result()  */
static VALUE query_with_result(VALUE obj)
{
    return GetMysqlStruct(obj)->query_with_result? Qtrue: Qfalse;
}

query_with_result=(flag)

[Source]

/*      query_with_result=(flag)     */
static VALUE query_with_result_set(VALUE obj, VALUE flag)
{
    if (TYPE(flag) != T_TRUE && TYPE(flag) != T_FALSE)
#if RUBY_VERSION_CODE < 160
        TypeError("invalid type, required true or false.");
#else
        rb_raise(rb_eTypeError, "invalid type, required true or false.");
#endif
    GetMysqlStruct(obj)->query_with_result = flag;
    return flag;
}

real_escape_string(string)

[Source]

/*      real_escape_string(string)   */
static VALUE real_escape_string(VALUE obj, VALUE str)
{
    MYSQL* m = GetHandler(obj);
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_real_escape_string(m, RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

escape_string(string)

[Source]

/*      escape_string(string)        */
static VALUE escape_string(VALUE klass, VALUE str)
{
    VALUE ret;
    Check_Type(str, T_STRING);
    ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
    RSTRING(ret)->len = mysql_escape_string(RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
    return ret;
}

real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)

[Source]

/*      real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)   */
static VALUE real_connect2(int argc, VALUE* argv, VALUE obj)
{
    VALUE host, user, passwd, db, port, sock, flag;
    char *h, *u, *p, *d, *s;
    unsigned int pp, f;
    MYSQL* m = GetHandler(obj);
    rb_scan_args(argc, argv, "07", &host, &user, &passwd, &db, &port, &sock, &flag);
    d = NILorSTRING(db);
    f = NILorINT(flag);
    h = NILorSTRING(host);
    u = NILorSTRING(user);
    p = NILorSTRING(passwd);
    pp = NILorINT(port);
    s = NILorSTRING(sock);

    if (mysql_real_connect(m, h, u, p, d, pp, s, f) == NULL)
        mysql_raise(m);
    m->reconnect = 0;
    GetMysqlStruct(obj)->connection = Qtrue;

    return obj;
}

query(sql)

[Source]

/*      query(sql)   */
static VALUE query(VALUE obj, VALUE sql)
{
    MYSQL* m = GetHandler(obj);
    Check_Type(sql, T_STRING);
    if (rb_block_given_p()) {
#if MYSQL_VERSION_ID >= 40101
        if (mysql_get_server_version(m) >= 40101 && mysql_set_server_option(m, MYSQL_OPTION_MULTI_STATEMENTS_ON) != 0)
            mysql_raise(m);
#endif
        if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
            mysql_raise(m);
        do {
            MYSQL_RES* res = mysql_store_result(m);
            if (res == NULL) {
                if (mysql_field_count(m) != 0)
                    mysql_raise(m);
            } else {
                VALUE robj = mysqlres2obj(res);
                rb_ensure(rb_yield, robj, res_free, robj);
            }
        }
#if MYSQL_VERSION_ID >= 40101
        while (mysql_next_result(m) == 0);
#else
        while (0);
#endif
        return obj;
    }
    if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
        mysql_raise(m);
    if (GetMysqlStruct(obj)->query_with_result == Qfalse)
        return obj;
    if (mysql_field_count(m) == 0)
        return Qnil;
    return store_result(obj);
}

reconnect()

[Source]

/*      reconnect()  */
static VALUE reconnect(VALUE obj)
{
    return GetHandler(obj)->reconnect ? Qtrue : Qfalse;
}

reconnect=(flag)

[Source]

/*      reconnect=(flag)     */
static VALUE reconnect_set(VALUE obj, VALUE flag)
{
    GetHandler(obj)->reconnect = (flag == Qnil || flag == Qfalse) ? 0 : 1;
    return flag;
}

refresh®

[Source]

/*      refresh(r)   */
static VALUE refresh(VALUE obj, VALUE r)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_refresh(m, NUM2INT(r)) != 0)
        mysql_raise(m);
    return obj;
}

reload()

[Source]

/*      reload()     */
static VALUE reload(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_reload(m) != 0)
        mysql_raise(m);
    return obj;
}

rollback()

[Source]

/*      rollback()   */
static VALUE rollback(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_rollback(m) != 0)
        mysql_raise(m);
    return obj;
}

select_db(db)

[Source]

/*      select_db(db)        */
static VALUE select_db(VALUE obj, VALUE db)
{
    MYSQL* m = GetHandler(obj);
    if (mysql_select_db(m, StringValuePtr(db)) != 0)
        mysql_raise(m);
    return obj;
}

server_info()

[Source]

/*      server_info()        */
static VALUE server_info(VALUE obj)
{
    return rb_tainted_str_new2(mysql_get_server_info(GetHandler(obj)));
}

server_version()

[Source]

/*      server_version()     */
static VALUE server_version(VALUE obj)
{
    return INT2NUM(mysql_get_server_version(GetHandler(obj)));
}

set_server_option(option)

[Source]

/*      set_server_option(option)    */
static VALUE set_server_option(VALUE obj, VALUE option)
{
    MYSQL *m = GetHandler(obj);
    if (mysql_set_server_option(m, NUM2INT(option)) != 0)
        mysql_raise(m);
    return obj;
}

shutdown()

[Source]

/*      shutdown()   */
static VALUE my_shutdown(int argc, VALUE* argv, VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    VALUE level;

    rb_scan_args(argc, argv, "01", &level);
#if MYSQL_VERSION_ID >= 40103
    if (mysql_shutdown(m, NIL_P(level) ? SHUTDOWN_DEFAULT : NUM2INT(level)) != 0)
#else
    if (mysql_shutdown(m) != 0)
#endif
        mysql_raise(m);
    return obj;
}

sqlstate()

[Source]

/*      sqlstate()   */
static VALUE sqlstate(VALUE obj)
{
    MYSQL *m = GetHandler(obj);
    return rb_tainted_str_new2(mysql_sqlstate(m));
}

ssl_set(key=nil, cert=nil, ca=nil, capath=nil, cipher=nil)

[Source]

/*      ssl_set(key=nil, cert=nil, ca=nil, capath=nil, cipher=nil)   */
static VALUE ssl_set(int argc, VALUE* argv, VALUE obj)
{
    VALUE key, cert, ca, capath, cipher;
    char *s_key, *s_cert, *s_ca, *s_capath, *s_cipher;
    MYSQL* m = GetHandler(obj);
    rb_scan_args(argc, argv, "05", &key, &cert, &ca, &capath, &cipher);
    s_key = NILorSTRING(key);
    s_cert = NILorSTRING(cert);
    s_ca = NILorSTRING(ca);
    s_capath = NILorSTRING(capath);
    s_cipher = NILorSTRING(cipher);
    mysql_ssl_set(m, s_key, s_cert, s_ca, s_capath, s_cipher);
    return obj;
}

stat()

[Source]

/*      stat()               */
static VALUE my_stat(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    const char* s = mysql_stat(m);
    if (s == NULL)
        mysql_raise(m);
    return rb_tainted_str_new2(s);
}

stmt_init()

[Source]

/*      stmt_init()  */
static VALUE stmt_init(VALUE obj)
{
    MYSQL *m = GetHandler(obj);
    MYSQL_STMT *s;
    struct mysql_stmt* stmt;
    my_bool true = 1;
    VALUE st_obj;

    if ((s = mysql_stmt_init(m)) == NULL)
        mysql_raise(m);
    if (mysql_stmt_attr_set(s, STMT_ATTR_UPDATE_MAX_LENGTH, &true))
        rb_raise(rb_eArgError, "mysql_stmt_attr_set() failed");
    st_obj = Data_Make_Struct(cMysqlStmt, struct mysql_stmt, 0, free_mysqlstmt, stmt);
    memset(stmt, 0, sizeof(*stmt));
    stmt->stmt = s;
    stmt->closed = Qfalse;
    return st_obj;
}

store_result()

[Source]

/*      store_result()       */
static VALUE store_result(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res = mysql_store_result(m);
    if (res == NULL)
        mysql_raise(m);
    return mysqlres2obj(res);
}

thread_id()

[Source]

/*      thread_id()  */
static VALUE thread_id(VALUE obj)
{
    return INT2NUM(mysql_thread_id(GetHandler(obj)));
}

use_result()

[Source]

/*      use_result() */
static VALUE use_result(VALUE obj)
{
    MYSQL* m = GetHandler(obj);
    MYSQL_RES* res = mysql_use_result(m);
    if (res == NULL)
        mysql_raise(m);
    return mysqlres2obj(res);
}

warning_count()

[Source]

/*      warning_count()      */
static VALUE warning_count(VALUE obj)
{
    return INT2NUM(mysql_warning_count(GetHandler(obj)));
}

[Validate]