10 MySQL Ruby API
MySQL Ruby Module ver 2.4.2
Это MySQL Ruby API. Он отвечает за реализацию ряда функций,
аналогичных MySQL C API.
Для исправной работы интерфейса требуются, как минимум:
- MySQL 3.23.10+
- Ruby 1.4.5+
Автор: TOMITA Masahiro (tommy@tmtm.org, http://www.tmtm.org/mysql).
Порядок установки интерфейса
Сначала введите команды:
# ruby extconf.rb
# 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
Теперь введите команду:
# ruby -I. ./test.rb hostname user passwd
Скрипт test.rb имеет несколько аргументов: имя хоста сервера MySQL,
имя пользователя MySQL и его пароль.
Теперь введите команду:
# make install
Если Вы получили ошибку, например, libmysqlclient not found,
при тестировании, следует в явном виде задать каталог
библиотек в вызове make:
# env LD_RUN_PATH=каталог_с_libmysqlclient.so
# make
Если используется статическая библиотека libmysqlclient.a,
понадобятся некоторые дополнительные библиотеки. Подправьте скрипт
extconf.rb и включите в нем "have_library('m')" и
"have_library('z')".
Использование данного интерфейса
Имена методов базируются на C API без префикса mysql_. Если метод
породил некую ошибку, возникает исключительная ситуация MysqlError.
Загрузка модуля mysql выполняется указанием require "mysql".
Класс Mysql. Методы:
- init()
Используется для Mysql#options()
- real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil,
sock=nil, flag=nil)
Псевдонимы: connect(), new()
- escape_string(str)
Псевдоним: quote()
- get_client_info()
Псевдоним: client_info()
- debug(str)
Объектные методы:
- options(opt, val=nil)
- real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil,
sock=nil, flag=nil)
Псевдоним: 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)
Псевдоним: quote()
- field_count()
- get_host_info()
Псевдоним: host_info()
- get_proto_info()
Псевдоним: proto_info()
- get_server_info()
Псевдоним: 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()
Объектные переменные:
- query_with_result
Если true, query() действует как store_result() и
возвращает объект MysqlRes. Значение по умолчанию: true.
Класс MysqlRes. Методы:
- 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()
Итераторы:
- each() {|x| ...}
x представляет собой массив значений столбца.
- each_hash(with_table=false) {|x| ...}
x представляет собой хэш значений столбца, а ключ
является именем столбца.
Класс MysqlField. Объектные переменные (только для чтения):
- name
- table
- def
- type
- length
- max_length
- flags
- decimals
Объектные методы в классе:
- hash(),
- inspect()
Возвращает строку в формате "#".
Класс MysqlError. Объектные переменные (только для чтения):