Ruby: работаем с базой mysql

Как показала недолгая практика использования gem mysql, лучше его не использовать вообще, а сразу использовать gem mysql2.

gem mysql не развивается (последний апдейт в 2013) и имеет косяки, например, с кодировкой (кириллица кладется в cp1251 и изменить, насколько я понял, никак).

Установка mysql2

sudo gem install mysql2

Использование простое. При Insert крайне полезно почистить данные перед insert от мусора, во избежания exception, универсальный метод для этого можно взять тут.

[code language=”ruby”]
require ‘mysql2’

def db_mysql_con
client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "somepass", :database => "db")
end

def db_select_log(conn)
res = []
conn.query("SELECT * FROM log WHERE date=CURDATE() AND user_int=’TELEGRAM’").each do |r| res << r; end
return res
end

def db_insert_log(conn,id,text)
res = []
conn.query("INSERT INTO log (ID, TEXT) VALUES (\"#{id}\", \"#{text}\")").each do |r| res << r; end
end

conn_mysql = db_mysql_con # Подключаемся
puts db_select_log(conn_mysql) # Получаем результат в виде array в array
db_insert_log(conn_mysql, id, text) # Добавляем какие-то данные
conn_mysql.close # Отключаемся
[/code]

Leave a Reply