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

paul1113 · February 19, 2014 · Last by Shadow replied at February 19, 2014 · 2021 hits

#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 不存在啊。

You need to Sign in before reply, if you don't have an account, please Sign up first.