class Mysql
define version string to be used internally for the Gem by Hoe.
Constants
- CLIENT_CHANGE_USER
- CLIENT_COMPRESS
- CLIENT_FOUND_ROWS
- CLIENT_IGNORE_SIGPIPE
- CLIENT_IGNORE_SPACE
- CLIENT_INTERACTIVE
- CLIENT_LOCAL_FILES
- CLIENT_MULTI_RESULTS
- CLIENT_MULTI_STATEMENTS
- CLIENT_NO_SCHEMA
- CLIENT_ODBC
- CLIENT_SSL
- CLIENT_TRANSACTIONS
- INIT_COMMAND
- OPTION_MULTI_STATEMENTS_OFF
- OPTION_MULTI_STATEMENTS_ON
- OPT_COMPRESS
- OPT_CONNECT_TIMEOUT
- OPT_GUESS_CONNECTION
- OPT_LOCAL_INFILE
- OPT_NAMED_PIPE
- OPT_PROTOCOL
- OPT_READ_TIMEOUT
- OPT_USE_EMBEDDED_CONNECTION
- OPT_USE_REMOTE_CONNECTION
- OPT_WRITE_TIMEOUT
- READ_DEFAULT_FILE
- READ_DEFAULT_GROUP
- REFRESH_GRANT
- REFRESH_HOSTS
- REFRESH_LOG
- REFRESH_MASTER
- REFRESH_SLAVE
- REFRESH_STATUS
- REFRESH_TABLES
- REFRESH_THREADS
- SECURE_AUTH
- SET_CHARSET_DIR
- SET_CHARSET_NAME
- SET_CLIENT_IP
- SHARED_MEMORY_BASE_NAME
- VERSION
Mysql constant
Public Class Methods
static VALUE client_info(VALUE klass) { return rb_tainted_str_new2(mysql_get_client_info()); }
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)
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); #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_stop_timer(); #endif 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 { #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif mysql_raise(&myp->handler); } #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif myp->handler.reconnect = 0; myp->connection = Qtrue; myp->query_with_result = Qtrue; rb_obj_call_init(obj, argc, argv); return obj; }
my_debug(string)
static VALUE my_debug(VALUE obj, VALUE str) { mysql_debug(StringValuePtr(str)); return obj; }
::escape_string(string)
static VALUE escape_string(VALUE klass, VALUE str) { VALUE ret; Check_Type(str, T_STRING); ret = rb_str_new(0, (RSTRING_LEN(str))*2+1); rb_str_set_len(ret, mysql_escape_string(RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str))); return ret; }
static VALUE client_info(VALUE klass) { return rb_tainted_str_new2(mysql_get_client_info()); }
static VALUE client_version(VALUE obj) { return INT2NUM(mysql_get_client_version()); }
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; }
::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); #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_stop_timer(); #endif 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 { #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif mysql_raise(&myp->handler); } #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif myp->handler.reconnect = 0; myp->connection = Qtrue; myp->query_with_result = Qtrue; rb_obj_call_init(obj, argc, argv); return obj; }
::escape_string(string)
static VALUE escape_string(VALUE klass, VALUE str) { VALUE ret; Check_Type(str, T_STRING); ret = rb_str_new(0, (RSTRING_LEN(str))*2+1); rb_str_set_len(ret, mysql_escape_string(RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str))); return ret; }
::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); #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_stop_timer(); #endif 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 { #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif mysql_raise(&myp->handler); } #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif myp->handler.reconnect = 0; myp->connection = Qtrue; myp->query_with_result = Qtrue; rb_obj_call_init(obj, argc, argv); return obj; }
Public Instance Methods
static VALUE affected_rows(VALUE obj) { return ULL2NUM(mysql_affected_rows(GetHandler(obj))); }
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)
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; }
static VALUE character_set_name(VALUE obj) { return rb_tainted_str_new2(mysql_character_set_name(GetHandler(obj))); }
static VALUE client_info(VALUE klass) { return rb_tainted_str_new2(mysql_get_client_info()); }
static VALUE client_version(VALUE obj) { return INT2NUM(mysql_get_client_version()); }
close()
static VALUE my_close(VALUE obj) { MYSQL* m = GetHandler(obj); mysql_close(m); GetMysqlStruct(obj)->connection = Qfalse; return obj; }
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)
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); #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_stop_timer(); #endif if (mysql_real_connect(m, h, u, p, d, pp, s, f) == NULL) { #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif mysql_raise(m); } #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif m->reconnect = 0; GetMysqlStruct(obj)->connection = Qtrue; return obj; }
#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)
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; }
static VALUE dump_debug_info(VALUE obj) { MYSQL* m = GetHandler(obj); if (mysql_dump_debug_info(m) != 0) mysql_raise(m); return obj; }
errno()
static VALUE my_errno(VALUE obj) { return INT2NUM(mysql_errno(GetHandler(obj))); }
error()
static VALUE my_error(VALUE obj) { return rb_str_new2(mysql_error(GetHandler(obj))); }
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_LEN(str))*2+1); rb_str_set_len(ret, mysql_real_escape_string(m, RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str))); return ret; }
static VALUE field_count(VALUE obj) { return INT2NUM(mysql_field_count(GetHandler(obj))); }
static VALUE client_info(VALUE klass) { return rb_tainted_str_new2(mysql_get_client_info()); }
static VALUE client_version(VALUE obj) { return INT2NUM(mysql_get_client_version()); }
static VALUE host_info(VALUE obj) { return rb_tainted_str_new2(mysql_get_host_info(GetHandler(obj))); }
static VALUE proto_info(VALUE obj) { return INT2NUM(mysql_get_proto_info(GetHandler(obj))); }
static VALUE server_info(VALUE obj) { return rb_tainted_str_new2(mysql_get_server_info(GetHandler(obj))); }
static VALUE server_version(VALUE obj) { return INT2NUM(mysql_get_server_version(GetHandler(obj))); }
static VALUE host_info(VALUE obj) { return rb_tainted_str_new2(mysql_get_host_info(GetHandler(obj))); }
info()
static VALUE info(VALUE obj) { const char* p = mysql_info(GetHandler(obj)); return p? rb_tainted_str_new2(p): Qnil; }
static VALUE insert_id(VALUE obj) { return ULL2NUM(mysql_insert_id(GetHandler(obj))); }
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)
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)
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); }
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)
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; }
static VALUE more_results(VALUE obj) { if (mysql_more_results(GetHandler(obj)) == 0) return Qfalse; else return Qtrue; }
static VALUE more_results(VALUE obj) { if (mysql_more_results(GetHandler(obj)) == 0) return Qfalse; else return Qtrue; }
static VALUE next_result(VALUE obj) { MYSQL* m = GetHandler(obj); int ret; ret = mysql_next_result(m); if (ret > 0) mysql_raise(m); if (ret == 0) return Qtrue; return Qfalse; }
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()
static VALUE ping(VALUE obj) { MYSQL* m = GetHandler(obj); if (mysql_ping(m) != 0) mysql_raise(m); return obj; }
prepare(query)
static VALUE prepare(VALUE obj, VALUE query) { VALUE st; st = stmt_init(obj); return stmt_prepare(st, query); }
static VALUE proto_info(VALUE obj) { return INT2NUM(mysql_get_proto_info(GetHandler(obj))); }
query(sql)
static VALUE query(VALUE obj, VALUE sql) { int loop = 0; MYSQL* m = GetHandler(obj); Check_Type(sql, T_STRING); if (GetMysqlStruct(obj)->connection == Qfalse) { rb_raise(eMysql, "query: not connected"); } if (rb_block_given_p()) { if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 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 if ((loop = mysql_next_result(m)) > 0) mysql_raise(m); } while (loop == 0); #else } while (0); #endif return obj; } if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 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); }
static VALUE query_with_result(VALUE obj) { return GetMysqlStruct(obj)->query_with_result? Qtrue: Qfalse; }
#query_with_result=(flag)
static VALUE query_with_result_set(VALUE obj, VALUE flag) { if (TYPE(flag) != T_TRUE && TYPE(flag) != T_FALSE) rb_raise(rb_eTypeError, "invalid type, required true or false."); GetMysqlStruct(obj)->query_with_result = flag; return flag; }
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_LEN(str))*2+1); rb_str_set_len(ret, mysql_real_escape_string(m, RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str))); return ret; }
::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); #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_stop_timer(); #endif if (mysql_real_connect(m, h, u, p, d, pp, s, f) == NULL) { #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif mysql_raise(m); } #ifdef HAVE_RB_THREAD_START_TIMER rb_thread_start_timer(); #endif m->reconnect = 0; GetMysqlStruct(obj)->connection = Qtrue; return obj; }
query(sql)
static VALUE query(VALUE obj, VALUE sql) { int loop = 0; MYSQL* m = GetHandler(obj); Check_Type(sql, T_STRING); if (GetMysqlStruct(obj)->connection == Qfalse) { rb_raise(eMysql, "query: not connected"); } if (rb_block_given_p()) { if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 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 if ((loop = mysql_next_result(m)) > 0) mysql_raise(m); } while (loop == 0); #else } while (0); #endif return obj; } if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 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()
static VALUE reconnect(VALUE obj) { return GetHandler(obj)->reconnect ? Qtrue : Qfalse; }
reconnect=(flag)
static VALUE reconnect_set(VALUE obj, VALUE flag) { GetHandler(obj)->reconnect = (flag == Qnil || flag == Qfalse) ? 0 : 1; return flag; }
refresh®
static VALUE refresh(VALUE obj, VALUE r) { MYSQL* m = GetHandler(obj); if (mysql_refresh(m, NUM2INT(r)) != 0) mysql_raise(m); return obj; }
reload()
static VALUE reload(VALUE obj) { MYSQL* m = GetHandler(obj); if (mysql_reload(m) != 0) mysql_raise(m); return obj; }
rollback()
static VALUE rollback(VALUE obj) { MYSQL* m = GetHandler(obj); if (mysql_rollback(m) != 0) mysql_raise(m); return obj; }
#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; }
static VALUE server_info(VALUE obj) { return rb_tainted_str_new2(mysql_get_server_info(GetHandler(obj))); }
static VALUE server_version(VALUE obj) { return INT2NUM(mysql_get_server_version(GetHandler(obj))); }
#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()
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()
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)
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()
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); }
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; }
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); }
static VALUE thread_id(VALUE obj) { return INT2NUM(mysql_thread_id(GetHandler(obj))); }
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); }
static VALUE warning_count(VALUE obj) { return INT2NUM(mysql_warning_count(GetHandler(obj))); }