2012-05-16 31 views
0

我在寫一個ruby腳本,它有幾個select查詢。 在我初始化一個新的數據庫連接的腳本的開頭:ruby​​:在單個查詢後關閉mysql關閉

db = Mysql.new 'localhost', 'root', 'pass', 'mydb', 3308 

第一選擇查詢成功,但是當它到達第二個出現以下錯誤:

在'查詢'

:查詢:未連接(Mysql :: Error)

我可以通過在每個查詢之前複製連接初始化行來解決這個問題,但我真的不認爲這是正確的解決方案。

感謝, 李

添加我的完整的腳本(我在這個新的,爲可憐的風格很抱歉): (有一個更簡單的攝製取代了原來的腳本): 在下面代碼,如果我註釋掉「SELECT」查詢並只保留「INSERT INTO」查詢,那麼一切都很好。但是,如果我嘗試按原樣運行代碼,則會出現上述錯誤。

#!/usr/local/bin/ruby -w 

require "mysql" 

dbname = "sample_db" 

m = Mysql.new 'localhost', 'root', 'passw', 'sample_db', 3306 

m.select_db(dbname) 

m.query("CREATE TABLE words   
    (   
     german varchar(30),   
     english varchar(30),   
     french varchar(30)   
    )"   
    ) 

m.query("INSERT INTO words VALUES('Adler', 'eagle', 'aigle')") 

results = m.query("SELECT german, english FROM words") 

m.query("INSERT INTO words VALUES('Haus', 'house', 'maison')") 

m.close 
+0

你的意思是你需要寫每個查詢db = ...行?確保你沒有關閉連接之前第二個查詢... –

+0

我不認爲我正在關閉連接..我編輯了問題,並添加了代碼 – user429400

+0

寫入db = Mysql.new'localhost','root', '通','mydb',3308開始之前...我認爲它會工作然後... –

回答

1

中發現了答案:

http://halyph.blogspot.com/2009/08/rails-23-migration-issues-with-mysql_26.html

看來,這是一個常見的問題,我剛剛與更換的libmysql.dll: http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

,然後重新啓動我的MySQL服務。 請注意,我已經取代我的DLL(在安裝問題後),但只有來自rubyforge的DLL似乎已經解決了這個問題

請注意,此問題的另一個症狀是零星分段錯誤。這些也消失後更換dll