problem in mysql and ruby data fetching

Hi,
    Just yesterday I successfully installed ruby in my pc, means I am
new in this technology.
    Today I am trying to fetch the data in my ruby application and
successfully done this. Now I want to speed up the performance of the
fetching data by making use of prepare and execute method.In case of
select query also I am using this like

   require 'mysql'
   mysql = Mysql.init()
   mysql.connect('localhost','root','','ruby')
   selection = mysql.prepare("select * from test where id=?")
   result = selection.execute(2)
   while row = result.fetch_hash do
     puts "The name is: #{row['name']}"
   end
   mysql.close();

So when I run this small part of the application I am getting the
following error:
       in `<top (required)>': undefined method `fetch_hash' for
#<Mysql::Stmt:0xf9d128> (NoMethodError)
  from -e:1:in `load'
  from -e:1:in `<main>'

But if we write code like:
   require 'mysql'
   mysql = Mysql.init()
   mysql.connect('localhost','root','','ruby')
   result = mysql.query("select * from test where id=2")
   while row = result.fetch_hash do
     puts "The name is: #{row['name']}"
   end
   mysql.close();

then my application is running without error.

Now my question is, if we try to fetch the data by making use of prepare
and execute method then what will be the available methods for showing
the records?

Srimanta Chakraborty wrote in post #1043667:

Hi,
    Just yesterday I successfully installed ruby in my pc, means I am
new in this technology.
    Today I am trying to fetch the data in my ruby application and
successfully done this. Now I want to speed up the performance of the
fetching data by making use of prepare and execute method.In case of
select query also I am using this like

   require 'mysql'
   mysql = Mysql.init()
   mysql.connect('localhost','root','','ruby')
   selection = mysql.prepare("select * from test where id=?")
   result = selection.execute(2)
   while row = result.fetch_hash do
     puts "The name is: #{row['name']}"
   end
   mysql.close();

So when I run this small part of the application I am getting the
following error:
       in `<top (required)>': undefined method `fetch_hash' for
#<Mysql::Stmt:0xf9d128> (NoMethodError)
  from -e:1:in `load'
  from -e:1:in `<main>'

But if we write code like:
   require 'mysql'
   mysql = Mysql.init()
   mysql.connect('localhost','root','','ruby')
   result = mysql.query("select * from test where id=2")
   while row = result.fetch_hash do
     puts "The name is: #{row['name']}"
   end
   mysql.close();

then my application is running without error.

Now my question is, if we try to fetch the data by making use of prepare
and execute method then what will be the available methods for showing
the records?

If I use the first option and use fetch method instead of fetch_hash
method then I am getting the records but by using only index, the array
is fetching not by column name. So how to get that?

I don't know the answer to your question, but I see you are not using
Rails, just Ruby. Are you intending to use Rails or is this to be a
native Ruby application? This is principally an RoR list, someone
here may well know the answer but there may be better places to ask
for straight Ruby questions.

Colin

Colin Law wrote in post #1043686: