English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في الفصل السابق، قمنا بشرح استخدام Ruby DBI. في هذا الفصل، سنقوم بشرح كيفية استخدام أسرع محرك ربط Ruby مع Mysql، وهو mysql2، ويُنصح باستخدام هذا الأسلوب لربط MySql.
تثبيت محرك mysql2:
gem install mysql2
يجب عليك استخدام –with-mysql-config لتعيين مسار mysql_config، مثلًا: –with-mysql-config=/some/random/path/bin/mysql_config.
قواعد النصوص لربط قاعدة البيانات كالتالي:
client = Mysql2::Client.new(:host => "localhost", :username => "root")
المزيد من المعلمات يمكن الرجوع إليها http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html.
results = client.query("SELECT * FROM users WHERE group='githubbers'")
escaped = client.escape("gi'thu\"bbe\0r's") results = client.query("SELECT * FROM users WHERE group='#{escaped}'")
تعداد نتایج مجموعه بازگشتی محاسبه میشود:
results.count
results.each |row| # row یک دیکشنری است # کلیدها مقادیر فیلدهای دیتابیس هستند # مقادیر همگی با دادههای MySQL مطابقت دارند puts row["id"] # row["id"].class == Fixnum if row["dne"] # اگر وجود ندارد،则是 nil puts row["dne"] پایان پایان
#!/usr/bin/ruby -w require 'mysql2' client = Mysql2::Client.new( :host => '127.0.0.1', # میزبان :username => 'root', # نام کاربری :password => '123456', # رمز عبور :database => 'test', # دیتابیس :encoding => 'utf8' # کدگذاری ) results = client.query("SELECT VERSION()") results.each |row| puts row پایان
نتیجه خروجی اجرای مثال بالا به شرح زیر است:
{"VERSION()"=>"5.6.21"}
Mysql2::Client.new( :host, :username, :password, :port, :database, :socket = '/path/to/mysql.sock', :flags = REMEMBER_OPTIONS | LONG_PASSWORD | LONG_FLAG | TRANSACTIONS | PROTOCOL_41 | SECURE_CONNECTION | MULTI_STATEMENTS, :encoding = 'utf8', :read_timeout = seconds, :write_timeout = seconds, :connect_timeout = seconds, :reconnect = true/false, :local_infile = true/false, :secure_auth = true/false, :default_file = '/path/to/my.cfg', :default_group = 'my.cfg section', :init_command => sql )
لمعرفة المزيد من المعلومات، يرجى الرجوع إلى:http://www.rubydoc.info/gems/mysql2/0.2.3/frames.