-->

Программирование на языке Ruby

На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Программирование на языке Ruby
Название: Программирование на языке Ruby
Дата добавления: 16 январь 2020
Количество просмотров: 516
Читать онлайн

Программирование на языке Ruby читать книгу онлайн

Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

10.4.2. Интерфейс с MySQL

Интерфейс Ruby с MySQL — один из самых стабильных и полнофункциональных среди всех интерфейсов с базами данных. Это расширение, которое должно устанавливаться после инсталляции Ruby и MySQL.

Для использования модуля нужно выполнить три шага: прежде всего, загрузить модуль в свой сценарий, затем установить соединение с базой данных и, наконец, начать работать с таблицами. Для установления соединения следует задать обычные параметры: имя хоста, имя пользователя, пароль, имя базы данных и т.д.

require 'mysql'

m = Mysql.new("localhost","ruby","secret","maillist")

r = m.query("SELECT * FROM people ORDER BY name")

r.each_hash do |f|

 print "#{f['name']} - #{f['email']}"

end

# Выводится что-то вроде:

# John Doe - [email protected]

# Fred Smith - [email protected]

Особенно полезны методы класса

Mysql.new
и
MysqlRes.each_hash
, а также метод экземпляра
query
.

Модуль состоит из четырех классов (

Mysql
,
MysqlRes
,
MysqlField
и
MysqlError
), описанных в файле README. Мы приведем сводку некоторых наиболее употребительных методов, а дополнительную информацию вы сможете найти сами в официальной документации.

Метод класса

Mysql.new
принимает несколько строковых параметров, которые по умолчанию равны
nil
, и возвращает объект, представляющий соединение. Параметры называются
host
,
user
,
passwd
,
db
,
port
,
sock
и
flag
. У метода
new
есть синонимы
real_connect
и
connect
.

Методы

create_db
,
select_db
и
drop_db
принимают в качестве параметров имя базы данных и используются, как показано ниже. Метод
close
закрывает соединение с сервером.

m=Mysql.new("localhost","ruby","secret")

m.create_db("rtest")  # Создать новую базу данных.

m.select_db("rtest2") # Выбрать другую базу данных.

in.drop_db("rtest")   # Удалить базу данных.

m.close               # Закрыть соединение.

В последних версиях методы

create_db
и
drop_db
объявлены устаревшими. Но можно «воскресить» их, определив следующим образом:

class Mysql

 def create_db(db)

  query("CREATE DATABASE #{db}")

 end

 def drop_db(db)

  query("DROP DATABASE #{db}")

 end

end

Метод

list_dbs
возвращает список имен доступных баз данных в виде массива.

dbs = m.list_dbs # ["people","places","things"]

Метод

query
принимает строковый параметр и по умолчанию возвращает объект
MysqlRes
. В зависимости от заданного значения свойства
query_with_result
может также возвращаться объект
Mysql
.

Если произошла ошибка, то ее номер можно получить, обратившись к методу

errno
. Метод
error
возвращает текст сообщения об ошибке.

begin

 r=m.query("create table rtable

 (

  id int not null auto_increment,

  name varchar(35) not null,

  desc varchar(128) not null,

  unique id(id)

 )")

# Произошло исключение...

rescue

 puts m.error

  # Печатается: You have an error in your SQL syntax

  # near 'desc varchar(128) not null ,

  # unique id(id)

  # )' at line 5"

 puts m.errno

  # Печатается 1064

  # ('desc' is reserved for descending order)

end

Ниже перечислено несколько полезных методов экземпляра, определенных в классе

MysqlRes
:

• 

fetch_fields
возвращает массив объектов
MysqlField
, соответствующих полям в следующей строке;

• 

fetch_row
возвращает массив значений полей в следующей строке;

• 

fetch_hash(with_table=false)
возвращает хэш, содержащий имена и значения полей в следующей строке;

• 

num_rows
возвращает число строк в результирующем наборе;

• 

each
— итератор, последовательно возвращающий массив значений полей;

• 

each_hash(with_table=false)
— итератор, последовательно возвращающий хэш вида
{имя_поля => значение_поля}
(пользуйтесь нотацией
x['имя_поля']
для получения значения поля).

Вот некоторые методы экземпляра, определенные в классе

MysqlField
:

Перейти на страницу:
Комментариев (0)
название