MySQL/Ruby
?????? 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)
- connect(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