0

我正在编写一个包含多个选择查询的 ruby​​ 脚本。在脚本的开头,我正在初始化一个新的数据库连接:

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
4

1 回答 1

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(在出现安装问题后),但似乎只有 ruby​​forge 的 dll 解决了这个问题

请注意,此问题的另一个症状是零星的分段错误。更换dll后这些也消失了

于 2012-05-16T21:57:11.783 回答