【发布时间】:2013-05-26 18:57:36
【问题描述】:
环境是:
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
gem: mysql (2.9.1)
我正在尝试用 ruby 从 MySQL 中提取数据。它看起来像这样(在http://www.kitebird.com/articles/ruby-mysql.html 找到)
def read_sql_host(hostname, mac)
hostname = "'" + "#{hostname}" + "'"
mac = "'" + "#{mac}" + "'"
res = dbh.query("SELECT macadd FROM basenode WHERE hostname = #{hostname}")
res.each do |row|
row = row.collect { |v| v.nil? ? "nil" : v }
return row[0]
end
dbh.close if dbh
end
现在 - 当我添加时:
puts read_sql_host("node13.abit.dk", "00-11-22-33-44-55")
它返回正确的东西:
[koen@Cerberus cgi-bin]$ ruby use_sql.rb
50:e5:49:b0:50:1a
但是当我要求某些东西时,它不在数据库中:
puts read_sql_host("node66.abit.dk", "00-11-22-33-44-55")
它只是返回一些我不知道如何更改的东西?
[koen@Cerberus cgi-bin]$ ruby use_sql.rb
#<Mysql:0x000000022f4818>
根据我的理解,它应该返回“nil”,如每个循环中所述?
任何帮助将不胜感激:>
//M00kaw
【问题讨论】: