Ruby – МYsql как да се свържем
Автор: index
Това е ‘малко’ продължение от предходният урок.
http://www.ruby-lang.org/bg/
Свалете Ruby , инсталирайте го, дайте отметки при стартирането на файлове и добавяне на разширенията.Няма нищо сложно, за туй няма наблягам.
След като напишем някакъв код , можем да го изпълним като напишем
ruby ./patch/files.rbВ терминала ( cmd – windows )
За да използваме базата данни (mysql server ) ще трябва да инсталираме добавката ( gem )
Това става по „супер сложният начин „.
За целта трябва да напишем в CMD / Терминал
gem install mysqlДо тук няма нищо сложно.Нещата се свалят и инсталират сами.Имате възможност да update gem-овете и ruby със следният код
gem updateИнсталирането на gem-ове може да трае от няколко секунди до 1 минута.
// Искам да вметна , че можете и ръчно да инсталирате gamе’s но този начин е по-бърз, по-лесен и шанса да се обърка нещо е значително по-малък.
След като вече имаме инсталирано ruby и гема за базата данни, ни трябва някакъв редактор.
Можете да използвате който искате текстов редактор.Netbeans има плъгин който можете да инсталирате, ако използвате него.Или да ползвате NotePad++.Това са двата редактора който ви препоръчвам.
За примерите по-долу ще използвам следната база данни за улеснение.
CREATE TABLE `test` (
`var` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `test` VALUES ('sadasdasd');
INSERT INTO `test` VALUES ('sdasda');
INSERT INTO `test` VALUES ('aaaaaaaaaaaaaaaa');
INSERT INTO `test` VALUES ('dddddddddddddddddddddddddddddq');
INSERT INTO `test` VALUES ('qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqddddd');Създаваме файл/проект като в началото му декларираме какво ще използваме. В случая ще бъде само модула на ruby за mysql
За целта , непосредствено в началото на файла поставяме :
require "mysql"След което се налага да направим инстанция и да зададем следната информация :
host , username , pass , database
Този конструктор се различава значително от старите познати функции в PHP.Тук селектирането и избора на таблица става още при инстанцията.
Ще я присвоим на някаква променлива за да ни е по-лесно.
my = Mysql::new("localhost", "root", "12", "test")localhost – се пада моят локален сървър за mysql
root – ми е потребителското име
12 – паролата на потребителя за базата данни
test – db към която се свързвам.
След като сме се свързали се предполага,че ще искаме да изпълним някаква заявка.
// Погледнете уроците в сайта за mysql ако нямате представа за какво пиша :)))
Ще искаме да извадим всички резултати от таблицата ‘test’
res = my.query("select * from test")Какво прави този ред ? Свързва се с ФБР и ЦРУ и проверява да не сте някой теторист 😀 Шегувам се 🙂
Изпращаме нашата SQL заявка и присвояваме резултата.
Следващата логична стъпка е да видим какво съдържа ‘test’.
За целта трябва да ‘обходим’ res защото той е масив.
Ако сте прочели и тренирали нещата от предният ми урок ще ви е напълно ясно какво правят следващите няколко реда :
res.each do |row|
puts row
endКогато имаме много , ама много заявки , и то големи те остават в паметта и става крайно неприятно. Единственият начин да пазим паметта е да я изчистим като освободим заявките.
Това става като към променливата която държи резултатите добавим : free
res.freeСлед като вече знаем как да изкараме някаква информация от базата данни се предполага, че и потребителя ще иска да вкара някаква информация, то било име , парола , някакъв текст ….
Примера по-долу отново ще бъде свързан с таблицата по-горе. За целта понеже имаме едно поле можем да го направим така , че потребителя да записва примерно името си….
Какво ще ни трябва ?
Ще искаме да се показва някакъв текст който да приканва потребителя да въведе някаква информация ( примерно името ) и тя бъде записана в базата данни.И след това ще изкараме старите и новите записи , за да видим ,че всичко е наред.
Ще използваме метода gets който ще бъде присвоен от някаква применлива. Тази променлива ще държи всичко което потребителя напише и натисне ENTER.
puts "Enter your name"
name = gets
puts "Name is : #{name}"
my.query("INSERT INTO test (`var`) VALUES ('#{name}')")Тук сложете кодаТук ще видите нещо , което може да смути някой от вас. А именно как се извиква някаква променлива в стринг. Ако използвате NetBeans автоматично ще бъде написано всичко автоматично.
За да се ‘види’ съдържанието на променливата в някакъв стринг се изписва #{var_name} и тя се появява.
Надявам се да съм ви помогнал, и да сте разбрали нещо от урока.
лек проблем с енкодинга :)))


