Ruby SQL:未定义的方法“[]”

发布于 2024-09-18 01:45:16 字数 817 浏览 2 评论 0原文

我想我很愚蠢。

rc = Mysql.new('CENSORED_HOST','username','password','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')

puts release["release_title"]

rc.close

我收到以下错误:

ribcage-connect.rb:17: undefined method `[]' for #<Mysql::Result:0x1011ee900> (NoMethodError)

我对此很陌生,并且我确信我基本上在做一些非常愚蠢的事情。多谢。

编辑

下面的好心人让我更进一步,现在我有了:

rc = Mysql.new('server','user','pword','db')

release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')

row = release.fetch_row
puts row['release_title']

rc.close

现在我得到了错误:

ribcage-connect.rb:12:in `[]': can't convert String into Integer (TypeError)
    from ribcage-connect.rb:12

I think I'm being stupid.

rc = Mysql.new('CENSORED_HOST','username','password','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')

puts release["release_title"]

rc.close

And I am getting the following error:

ribcage-connect.rb:17: undefined method `[]' for #<Mysql::Result:0x1011ee900> (NoMethodError)

I'm new to this and I am sure I am basically doing something very stupid. Thanks a lot.

EDIT

The kind people below have got me a but further, now I have:

rc = Mysql.new('server','user','pword','db')

release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')

row = release.fetch_row
puts row['release_title']

rc.close

And now I get the error:

ribcage-connect.rb:12:in `[]': can't convert String into Integer (TypeError)
    from ribcage-connect.rb:12

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

站稳脚跟 2024-09-25 01:45:20

该错误意味着您无法直接索引(使用 [])Result 对象。

它应该是(对于这个单行情况):

row = release.fetch_hash
puts row["release_title"]

有关更多信息:转到此处

That error means you cannot index directly (use []) the Result object.

It should instead be (for this single row case):

row = release.fetch_hash
puts row["release_title"]

For more information: go here

时间海 2024-09-25 01:45:19

rc.query(...) 返回一个可以迭代的结果集。您无法直接访问它。

看看:

http://www.kitebird.com/articles/ruby-mysql .html#TOC_7

由于您只有一行(由于 LIMIT 1),您可以执行以下操作:

row = release.fetch_hash
puts row['release_title']

如果您有多行:

while row = release.fetch_hash do
 puts row["release_title"]
end

the rc.query(...) returns a result set you can iterate. You can't directly access it.

Look at:

http://www.kitebird.com/articles/ruby-mysql.html#TOC_7

Since you have only one row (because of LIMIT 1) you can do:

row = release.fetch_hash
puts row['release_title']

If you have multiple rows:

while row = release.fetch_hash do
 puts row["release_title"]
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文