【发布时间】:2012-07-26 04:31:46
【问题描述】:
我正在使用 Ruby 1.9.3,我遇到了一个奇怪的问题,即“mysql”Ruby gem 在执行 20 次查询后出现分段错误。
这是执行查询的代码:
def load
dbh = Mysql::new($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME)
begin
res = dbh.query("SELECT word, type FROM words WHERE word = '#{dbh.escape_string(word)}';")
rescue Mysql::Error => e
puts "Error occurred during SQL query"
end
res.each do |row|
@word = row[0]
@type = row[1]
end
dbh.close if dbh
end
每次用户输入一个单词时都会调用此代码,对于前 20 个单词,查询可以正常工作,并在 21 日继续进行段错误,无论我在那里输入什么。
我在 Windows 上,使用 Ruby 1.9.3p0 和 ruby 'mysql' gem 版本 2.8.1,以及 MySQL 5.5.16。我已经检查过我复制到 Ruby bin 文件夹中的 libmysql.dll 文件是否与我安装的 MySQL 版本相同。
您对可能出现的问题有任何其他提示吗?
【问题讨论】:
-
您是否在 SO 中搜索过以前提出的问题?我可以发誓我本周早些时候看到了完全匹配。
-
@MikePurcell:我认为您指的是stackoverflow.com/questions/9667091/…,但问题还没有答案,而且操作系统不同,所以我认为情况可能会有所不同。我也读过其他的,但除了我已经尝试过的失败之外,没有关于如何解决这个问题的有用信息。
-
你能用 'mysql2' gem 代替 'mysql' gem 试试这个吗?