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

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

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

Установка mysql2

sudo gem install mysql2

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

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 # Отключаемся

Leave a Reply