From: Luc Traonmilin Date: 2009-03-14T22:46:45+09:00 Subject: Re: Cannot fetch from database using if...else From the API doc: fetch(): Fetch the next row in the result set. DBD Required. So someone will correct me if I'm wrong but I think you cannot evaluate fetch in a condition and call it in the condition itself because it will refer to the next row in the result set, probably nil in your case because there is only one row. Luc Arun Kumar a 辿crit : > Hi, > I'm new to ruby and right now i'm trying out some examples involving > database access using the dbi module. This is my code... > > #!/usr/local/bin/ruby -w > > require 'dbi' > > begin > con = DBI.connect("DBI:Mysql:Sample:localhost", "arunkumar", "123456") > stats = con.prepare("Select * from hello where first_name = ?") > stats.execute('arun') > if stats.fetch == nil > puts "No Records" > con.rollback > else > puts stats.fetch > end > rescue DBI::DatabaseError => e > puts "Error: #{e.errstr}" > ensure > con.disconnect if con > end > > If I use 'puts stats.fetch' before if the fetched data is displayed > properly. But if i use 'puts stats.fetch' inside if or else 'nil' will > be displayed even if there are matching records in the database. I dont > know why. Can anybody help me????? > > Regards > Arun Kumar >