RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

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. Объектные переменные (только для чтения):

  • error,
  • errno

Поиск

 

Найди своих коллег!