# $Id: README,v 1.24 2003/08/09 15:48:30 tommy Exp $
MySQL Ruby Module ver2.4.5
This is the MySQL API module for Ruby. It provides the same functions
for Ruby programs that the MySQL C API provides for C programs.
[Requirement]
* MySQL 3.23.54+
* Ruby 1.6.8+
The module may work for other versions, but that has not been verified.
[License]
This program is under Ruby's license.
[Install]
1st:
% ruby extconf.rb
or
% ruby extconf.rb --with-mysql-dir=/usr/local/mysql
or
% ruby extconf.rb --with-mysql-config
then
% make
extconf.rb has following options:
--with-mysql-include=
MySQL header file directory. Default is /usr/local/include.
--with-mysql-lib=
MySQL library directory. Default is /usr/local/lib.
--with-mysql-dir=
Same as --with-mysql-include=/include,
--with-mysql-lib=/lib.
--with-mysql-config[=/path/to/mysql_config]
Get compile-parameter from mysql_config command.
2nd:
% ruby -I. ./test.rb hostname user passwd
test.rb should be invoked with three arguments that indicate the
MySQL server hostname, and the username and password for a MySQL
account that can create a database named "rubytest". An optional
fourth argument is allowed, to specify a database name to use rather
than "rubytest". The database should not already exist.
3rd:
# make install
Note:
1. If you get error like 'libmysqlclient not found' when testing, you
need to specify the directory in which the library is located so
that make can find it.
% env LD_RUN_PATH= make
2. If you use the libmysqlclient.a static library, additional
libraries may be needed. Edit extconf.rb to enable
"have_library('m')" and "have_library('z')" for the -lm and -lz
libraries if necessary.
[Usage]
The names of methods provided by this module basically are the same as
the names of the functions in the C API, except that the Ruby method
names do not begin with a 'mysql_' prefix. For example, the Ruby
query() method corresponds to the C API mysql_query() function. For
details on the use of each Ruby method, see the descriptions of the
corresponding C functions in the MySQL Reference Manual.
Some Ruby methods may be invoked under other names that serve as
equivalent aliases, as noted below.
If an error occurs when a method executes, it raises a MysqlError
exception.
require "mysql"
loading mysql module.
[Mysql class]
CLASS METHODS
init()
Used for Mysql#options()
real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)
alias: connect(), new()
escape_string(str)
alias: quote()
get_client_info()
alias: client_info()
debug(str)
OBJECT METHODS
options(opt, val=nil)
real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)
alias: connect()
affected_rows()
change_user(user=nil, passwd=nil, db=nil)
character_set_name()
close()
create_db(db)
dump_debug_info()
drop_db(db)
errno()
error()
escape_string(str)
alias: quote()
field_count()
get_host_info()
alias: host_info()
get_proto_info()
alias: proto_info()
get_server_info()
alias: server_info()
info()
insert_id()
kill(id)
list_dbs(db=nil)
list_fields(table, field=nil)
list_processes()
list_tables(table=nil)
ping()
query(q)
refresh(r)
reload()
select_db(db)
shutdown()
stat()
store_result()
thread_id()
use_result()
OBJECT VARIABLES
query_with_result
If true, query() also invokes store_result() and returns a
MysqlRes object. Default is true.
[MysqlRes class]
OBJECT METHODS
free()
data_seek(offset)
fetch_field()
fetch_fields()
fetch_field_direct(fieldnr)
fetch_lengths()
fetch_row()
fetch_hash(with_table=false)
field_seek(offset)
field_tell()
num_fields()
num_rows()
row_seek(offset)
row_tell()
ITERATOR
each() {|x| ...}
'x' is array of column values.
each_hash(with_table=false) {|x| ...}
'x' is hash of column values, and the keys are the column names.
[MysqlField class]
OBJECT VARIABLES (read only)
name
table
def
type
length
max_length
flags
decimals
OBJECT METHODS
hash()
inspect()
return string formatted "#".
[MysqlError class]
OBJECT VARIABLES (read only)
error
errno
[History]
2003-08-10 2.4.5
* extconf.rb: correspond to MySQL 4.1.
* mysql.c.in: correspond to Ruby 1.8.
2003-02-23 2.4.4a
* make extconf.rb to correspond to Ruby 1.8.0
2003-01-29 2.4.4
* add Mysql::OPT_LOCAL_INFILE.
* add --with-mysql-config option to extconf.rb.
* extconf.rb automatically detect typical library.
2003-01-05 2.4.3c
* modified English README. Thanks to Paul DuBois.
2002-12-24 2.4.3b
* make extconf.rb to correspond to Ruby 1.6.8.
2002-11-07 2.4.3a
* fix bug duplicating constant.
2002-09-10 2.4.3
* for error number with prefix ER_ .
* get error constant from errmsg.h and mysqld_error.h automatically.
2002-01-07 2.4.2
* for MySQL 4.0.
* change `uint' to `unsigned int' (for mswin).
2001-12-02 2.4.1
* remove `extern' (for Cygiwn).
* change option of extconf.rb.
2001-10-12 2.4.0
* for Ruby 1.7.
* add Mysql::debug(), Mysql#change_user(), Mysql#character_set_name(),
Mysql#dump_debug_info().
[Author]
e-mail: TOMITA Masahiro
http://www.tmtm.org/mysql/