0

環境は次のとおりです。

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

4

2 に答える 2