環境は次のとおりです。
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