将Ruby Mysql查询转换为变量

将Ruby Mysql查询转换为变量,mysql,ruby,mysql2,Mysql,Ruby,Mysql2,我目前正试图找出如何将用户名作为ruby变量获取,但最终我得到了以下结果 {"username"=>"test"} 我只想在这种情况下,它是测试用户名文本 client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "", :database =>"test") results = client.query("SELECT

我目前正试图找出如何将用户名作为ruby变量获取,但最终我得到了以下结果

{"username"=>"test"}
我只想在这种情况下,它是测试用户名文本

client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "",                  :database =>"test")
results = client.query("SELECT username FROM accounts").each do |row|
    puts row [0]
end

您的代码可以使用,但不能使用mysql2。默认情况下,mysql2为每一行返回一个
哈希值

所以你可以

  • put行['username']
  • 使用
    each(:as=>:array)
    获得旧的行为
  • 也许您可以简化代码:

     results = client.query("SELECT username FROM Accounts").each(:as => :array)
     puts results
    
    这里的
    results
    将是所有使用名称的
    数组

    完整的工作计划:

    require 'mysql2'
    
    client = Mysql2::Client.new(:host => "localhost", :username => "", :password => "",
                                :database =>"test")
    
    results = client.query("SELECT * FROM Movie").each(:as => :array)
    results.each { | row | puts row.join("\t") }
    

    嘿@prnoo谢谢你的回复,我现在发现你的第二个选项有语法错误。有什么想法吗?刚刚添加了一个工作测试。我使用的是ruby 2.0.0p353(2013-11-22)[x86_64-linux]。祝你好运:-)