MySQL/Ruby

MySQL/Ruby

[English]


?????? MySQL ?? Ruby API ??????MySQL ?? C API ????????????????????????????

??????????

  • MySQL 3.23.58????
  • Ruby 1.6.8 ????

?????????????? make ????????????????????????????????????????

??????????

???????????????? Ruby ?????????? ????????????

????????????

??????????????????????


% ruby extconf.rb

??????


% ruby extconf.rb --with-mysql-dir=/usr/local/mysql

??????


% ruby extconf.rb --with-mysql-config

????????


% make

extconf.rb ??????????????????????????????????

--with-mysql-include=dir
MySQL ???????????????????????????? /usr/local/include ????????????????????????????????????
--with-mysql-lib=dir
MySQL ???????????????????????? /usr/local/lib ????????????????????????????????????
--with-mysql-dir=dir
--with-mysql-include=dir/include, --with-mysql-lib=dir/lib ????????????
--with-mysql-config[=/path/to/mysql_config]
mysql_config ????????????????????????????????????????????????

????????????????????????????


% ruby -I. ./test.rb <i>hostname</i> <i>user</i> <i>passwd</i>

test.rb ???????? hostname, user, passwd ?? MySQL ????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????


# make install

????

???????????????????? libmysqlclient ????????????????????????????????????????make ???????????????????????????????????????????????????????????? make ??????????????????


% env LD_RUN_PATH=<i>libmysqlclient.so??????</i> make

??????

???????????? C API ?????????? mysql_ ?????????????????????????????????????????????????????????????????? C API ?????????????????????????? MySQL ????????????????????????????

?????????????????????????????????? Mysql::Error ??????????????????

???????????????????????????????? self ????????????

Mysql ??????

MySQL ????????????????????????????

??????????????

init()

Mysql ??????????????????????????????mysqld ?????????????????? Mysql#options() ????????????????????????????????????????????

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

mysqld ??????????Mysql ?????????????????????????????? flag ???????? C API ??????????????????

??) Mysql::CLIENT_FOUND_ROWS

escape_string(str)
quote(str)

insert, update ????????????????????????????

get_client_info()
client_info()

??????????????????????????????????????????????

get_client_version()
client_version()

????????????????????????????????????????????

debug(str)

C API mysql_debug() ????????

????????????????????

options(opt, val=nil)

C API ?? mysql_options() ???????????? opt ???????????????? C API ???? MYSQL_ ????????????????????????????

??) Mysql::OPT_CONNECT_TIMEOUT

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

Mysql.real_connect() ????????????Mysql.init() ??????????????????????????????????????????????????????????

affected_rows()

??????????????????????????

autocommit(mode)

autocommit ???????? mode ??????????????mode ?? nil, false, 0 ??????????????????????????????????????

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

????????????????????????

character_set_name()

????????????????????????????

close()

??????????????????

commit()

??????????????????????????????????

create_db(db)

??????????????????????????

drop_db(db)

??????????????????????????

dump_debug_info()

C API mysql_dump_debug_info() ????????

errno()

??????????????????????

error()

????????????????????????????

escape_string(str)
quote(str)

insert, update ???????????????????????????? C API ?? mysql_real_escape_string() ????????

field_count()

??????????????????????????????????????????

get_client_info()
client_info()

??????????????????????????????????????????????

get_client_version()
client_version()

????????????????????????????????????????????

get_host_info()
host_info()

????????????????????????????

get_proto_info()
proto_info()

??????????????????????????????????????????

get_server_info()
server_info()

??????????????????????????????????????????

get_server_version()
server_version()

????????????????????????????????????????

info()

???????????????????????????????????????????????????????? nil ????????????

insert_id()

???????????????? AUTO_INCREMENT ????????????????????

kill(id)

id ??????????????????????????????

list_dbs(db=nil)

????????????????????????????????????

list_fields(table, field=nil)

???????????????????????????????? Mysql::Result ??????????????????????????????

list_processes()

???????????????????????????????????? Mysql::Result ??????????????????????????????

list_tables(table=nil)

????????????????????????????????

ping()

????????????????????????????????????????????

query(q)

????????????????????Ruby ??????????????????????????????????real_query() ?????????????? ???????????????????????????????? store_result() ????????????Mysql::Result ?????????????????????????????? query_with_result ?? false ????????????????????store_result() ????????????????

refresh(r)

??????????????????????????????????????????????

reload()

??????????????????????????????????????

rollback()

??????????????????????????????????????

select_db(db)

??????????????????????????

shutdown()

????????????????????

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

SSL??????????????????Mysql.init() ????Mysql#connect() ??????????????????????????

stat()

????????????????????????????????

store_result()

?????????????? Mysql::Result ??????????????????????????????

thread_id()

????????????????????ID????????????

use_result()

?????????????? Mysql::Result ??????????????????????????????

warning_count()

????????????????????????????????

????????????????

query_with_result
true ???????????? query() ???? store_result() ????????????Mysql::Result ?????????????????????????????? false ???????????????????????????????????????????????? true ??????

Mysql::Result ??????

????????????????????????

????????????????????

free()

??????????????????????????????????

data_seek(offset)

???????????????? offset ??????????????????

fetch_field()

???????????? Mysql::Field ?????????????????????????????? ????????????????????????????????????

fetch_fields()

?????????????? Mysql::Field ????????????????????????????????????

fetch_field_direct(fieldnr)

fieldnr ???????????? Mysql::Field ??????????????????????????????

fetch_lengths()

??????????????????????????????????????????

fetch_row()

???????????????????????????????????????????????????????????? ??????????????????????????

fetch_hash(with_table=false)

???????????????????????????????????????????????????????????? ???????????????????????????????????????????????? with_table ?? true ????????????????????????????????????"??????????.??????" ????????????????????????????

field_seek(offset)

???????????????? offset ????????????????????

field_tell()

????????????????????????????

num_fields()

??????????????????

num_rows()

????????????????????

row_seek(offset)

???????????????????????????? offset ???????????? row_tell() ????????????????

row_tell()

????????????????????????????????????

??????????

each() {|x| ??}

???????????????????? ?? ????????????????x ????????????????????

each_hash(with_table=false) {|x| ??}

???????????????????? ?? ???????????????? x ?????????????????????????????????????????? with_table ?? true ????????????????????????????????????"??????????.??????" ????????????????????????????

Mysql::Field ??????

????????????????????????????C API ???????????????????????? Mysql::Result ??????????????????????????Mysql::Result ?????????????????????????????????????????????????????????????? C API ??????????????????????????

????????????????(????????????)

name
??????
table
??????????
def
????????????
type
????????
length
??????????
max_length
??????????????????????????
flags
??????
decimals
??????????

type ???????????????? C API ?????????? FIELD_ ????????????????????????

??) Mysql::Field::TYPE_STRING

flag ???????????????? C API ??????????????????

??) Mysql::Field::BLOB_FLAG

????????????????????

hash()

????????????????????????????????????????????

??) obj.name == obj.hash['name']

is_not_null?()

???????????? "NOT NULL" ????????????????????????????????

is_num?()

??????????????????????????????????????

is_pri_key?()

????????????????????????????????????????????????

inspect()

?????? "#<Mysql::Field:??????>" ????????????

Mysql::Error ??????

MySQL ???????????????????????????? MySQL ????????????????????????????????????????????????

????????????????(????????????)

error
????????????????
errno
??????????

errno ???????????????? C API ??????????????????

??) Mysql::Error::CR_UNKNOWN_HOST

????

2004-09-20
version 2.5.1
  • Mysql#set_ssl() ??????
2004-08-31
version 2.5
  • MySQL 4.1.x ????
  • MysqlRes, MysqlField, MysqlError ?? Mysql::Result, Mysql::Field, Mysql::Error ????????
  • Mysql.client_version(), Mysql.get_client_version(), Mysql#client_version(), Mysql#get_client_version(), Mysql#server_version(), Mysql#get_server_version(), Mysql#warning_count(), Mysql#commit(), Mysql#rollback(), Mysql#autocommit() ??????
  • Mysql::Field#is_not_null?(), Mysql::Field#is_pri_key?(), Mysql::Field#is_num?() ??????
  • MysqlField::TYPE_VAR_STRING ??????
2003-08-10
version 2.4.5
  • extconf.rb: MySQL 4.1 ??????
  • mysql.c.in: Ruby 1.8 ??????
2003-02-23
version 2.4.4a
  • extconf.rb ?? Ruby 1.8.0 ??????
2003-01-29
version 2.4.4
  • Mysql::OPT_LOCAL_INFILE ????????
  • extconf.rb ?? --with-mysql-config ????????????????
  • extconf.rb ????????????????????????????????????????????
2003-01-05
version 2.4.3c
  • ?????? README ????????Paul DuBois ????????
2002-12-24
version 2.4.3b
  • extconf.rb ?? Ruby 1.6.8 ??????
2002-11-07
version 2.4.3a
  • ????????????????????????????????????????????????
2002-09-10
version 2.4.3
  • ER_ ????????????????????????????????
  • errmsg.h ?? mysqld_error.h ????????????????????????????????????????????
2002-01-07
version 2.4.2
  • MySQL 4.0 ??????
  • uint ?? unsigned int ????????mswin????????
2001-12-02
version 2.4.1
  • ?????? extern ????????Cygiwn????????
  • extconf.rb ????????????????????
2001-10-12
version 2.4.0
  • Ruby 1.7 ????????
  • Mysql::debug(), Mysql#change_user(), Mysql#character_set_name(), Mysql#dump_debug_info() ????????
2001-03-25
version 2.3.2a
  • t/50update.rb ????????????????
2001-03-19
version 2.3.2
  • ??????(20??) MysqlRes ?????????????????????????????????? GC ????????????????
  • Mysql#escape_string(), Mysql#quote() ?? mysql_real_escape_string() ??????????????????????
2000-09-02
version 2.3.1
  • Mysql#initialize() ??????(Ruby 1.6 ????)??
2000-07-22
version 2.3.0
  • MysqlRes#free() ????????
  • Mysql#initialize(), MysqlRes#initialize() ??????????????
  • true ????????????????????????self ??????????????????
2000-05-27
version 2.2.1a
  • test.rb ??????????????????????????????????????????
2000-05-10
version 2.2.1
  • ??????????????????????????????????????????????????????
  • ??????????????????????
1999-09-28
version 2.2.0
  • Mysql::init(), Mysql#options(), Mysql#real_connect() ????????
  • Mysql#field_count ????????
1999-09-24
version 2.1.7
  • MySQL 3.22.26 ????????
  • MysqlField#inspect() ????????
1999-06-17
version 2.1.6
  • fetch_field ??????????????????????
1999-06-12
version 2.1.5
  • Ruby 1.3.x ??????????????????????
1999-05-30
version 2.1.4
  • Ruby 1.3.x ????????
1999-04-13
version 2.1.3
  • fetch_hash/each_hash ????????????????????????????????
  • fetch_hash/each_hash ?? true ??????????????????????????????????
  • NULL???????????????? fetch_hash/each_hash ??????????????????????
1999-02-01
version 2.1.2
  • Mysql#refresh() ?? Mysql::REFRESH_* ????????
  • MySQL 3.21.xx ????????(??????????????)??
1999-01-24
version 2.1.1
  • MysqlError#error(), MysqlError#errno() ????????
  • MysqlError::CR_* ????????
1999-01-17
version 2.1
  • fetch_hash, each_hash ?? C ??????????????
  • MysqlField#hash() ????????
  • escape_string, get_client_info ????????????????????????????????????????????????
1998-11-29
version 2.0.1
  • fetch_hash, each_hash ?? with_table ????????????
  • ???????? get_* ???????????? C API ??????????????
  • mysql-compat.rb ?? alias ??????????????
  • Mysql ?????? CLIENT_* ?? MysqlField ????????????????????
1998-11-15
version 2.0
  • ???????????? C API ??????????????
  • C++ ??????????????????????????
1998-08-13
version 1.0
  • ????????????????

????

e-mail: ?????????????? [email protected] http://tmtm.org


TOMITA Masahiro
Last modified: Mon Sep 20 21:22:13 JST 2004