新手问题 有条件查询数据库代码错误

paul1113 · 2014年02月19日 · 最后由 Shadow 回复于 2014年02月19日 · 2028 次阅读

#encoding=UTF-8 require "mysql" dbh=Mysql.real_connect("localhost","root","root","rubytest",) class User def initialize(id,name,pwd) #构造方法 @id=id @name=name @pwd=pwd end attr_accessor :id,:name,:pwd #修饰可读、可写属性 end class UserDao #登录操作 def login(user,dbh) sql="select * from ruby where name ='#{user.name}' and pwd='#{user.id}'" res=dbh.query(sql) if res.num_rows==0 then puts "login fail" else puts "login success" end end #注册操作 def register(user,dbh) sql="insert into ruby values('#{user.id}','#{user.name}','#{user.pwd}')" dbh.query(sql) if dbh.affected_rows==i then puts "register success" else pus "register fail" end #按条件查询 def findAll(dbh,name) sql="select * from ruby where name='#{name}'" res=dbh.query(sql) puts "ID\tNAME\tPWD" while item=res.fetch_row puts "#{item[0]}\t#{item[1]}\t#{item[2]}" end end end begin user=User.new(8,'bf001','001') #登录用 user=User.new(9,'zs','123') #创建 User 对象 ud=UserDao.new #创建 UserDao 对象 #ud.login(user,dbh) 登录操作 #注册用 ud.register(user,dbh) ud.findALL(dbh,'bf001') #查询 end end

报错:test.rb:49:in <class:UserDao>': undefined local variable or methoddbh' for UserDao:Class (NameError) from test.rb:13:in `'

Markdown 格式化代码。

你这 看的头疼 明显的问题是 你在方法调用 dbh 的时候 数据库没有初始化 或者说 没有建立连接 在代码执行的时候就报错 应为 dbh 不存在啊。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号