ruby下mysql的安裝與配置 ruby on rails安裝mysql數據庫 1、在系統裡安裝mysql:下載mysql軟件,在百度上很多下載地址可以下載,或者進入mysql中文官方網站下載安裝軟件,我選擇的是5.1.62版本的 安裝mysql,設置默認字符集為utf-8 將mysql安裝目錄(默認C:/program files/mysql)之bin目錄下的libmySQL.dll拷貝至C:/ruby/bin目錄下 2、安裝mysql相關驅動: gem install mysql-2.8.1-x86-mingw32.gem 3、將ruby安裝目錄的lib/ruby/gems/1.8/gems/mysql-2.7.1-mswin32/ext/目錄下的mysql_api文件拷貝至ruby安裝目錄下的/lib/ruby/site_ruby/1.8/i386-msvcrt/目錄下。 4、測試ruby連接mysql 新建文本test_mysql.rd後輸入代碼: require "mysql" puts("hello,mysql") 命令行執行ruby test_mysql.rd 輸出結果: hello,mysql 則mysql連接成功 寫一段代碼: require 'DBcon' begin dbh = Mysql.real_connect("localhost", "root", "sa","makedish", 3306)------# 這裡調用Mysql模塊的real_connect方法。連接數據庫本機:用戶名:root 密碼:sa 數據庫:makedish 端口:3306 dbh.query("drop table if exists test_foolfish") --- #ruby執行語句 dbh.query("create table test_foolfish(id int,name varchar(20))") dbh.query("insert into test_foolfish values(1,'你好')") dbh.query("insert into test_foolfish values(2,hello)") printf "%d rows were insertedn",dbh.affected_rows ----#affected_rows返回受影響的行數 res=dbh.query("SELECT name FROM test_foolfish") puts "===============n" res.each_hash(with_table = true) do |row| printf "%d,%sn",row["test_rb.id"],row["test_rb.name"] end puts "===============n" puts "Server version:"+dbh.get_server_info rescue Mysql::Error=>e puts "Error code:#{e.errno}" puts "Error message:#{e.error}" puts "Error SQLSTATE:#{e.sqlstate}" if e.respond_to?("sqlstate") ensure dbh.close if dbh end ruby當中對數據庫存在兩種操作:一種是不用返回結果集的(例如insert,update,delete等等)一種是需要返回結果集的(如select show等)。對於不返回結果集的操作,我們只需要使用dbh.query方法,傳入需要執行的sql語句執行即可。 對於另一種需要返回結果集的則相對麻煩一些。執行完上面類似的語句之後,我們需要對結果集進行處理。我們可以將結果集一數組或者hash形式展現。這裡我們使用hash方式展現。 res=dbh.query("SELECT name FROM test_foolfish") puts "===============\n" res.each_hash(with_table = true) do |row| printf "%d,%s\n",row["test_rb.id"],row["test_rb.name"] end each_hash方法當中添加with_table = true參數可以保證在執行多表查詢的時候,多張表具有相同字段的尴尬。這樣我們hash的key值就可以用“表名.列名”的形式出現。