全局名称上的MySqldb错误:db

时间:2014-08-15 16:51:53

标签: python pygtk mysql-python

我在这里提出我的问题,但首先我搜索了整个网站,但没有找到正确答案。

我是Python和PyGTK的菜鸟。

这是我的代码:

from PyQt4 import uic
from PyQt4 import QtGui
from PyQt4 import QtCore
import MySQLdb
import sys,os

###删除大部分代码...我认为需要... ...(感谢...关于代码长度的评论)###

    def basedatos(self):
        db_host = 'localhost'
        usuario = 'root'
        clave = ''
        base_de_datos = 'toco_bdd'
        db = MySQLdb.connect(user=usuario,passwd= clave,db= base_de_datos,unix_socket="/opt/lampp/var/mysql/mysql.sock")

    def chequeouser(self):
        passwdcheck = txt_password.text()
        usuariover = txt_usuario.text()
        datosLogin = "SELECT * FROM t_usuarios WHERE id_usuario = usuariover AND password = 'passwdcheck"

        #para Futura Referencia - QtGui.QMessageBox.warning(self, "hola", "tu nombre de usuario es:"+usuariover+"y tu password es" + passwdcheck,QtGui.QMessageBox.Ok)
        datosLogin = "SELECT * FROM t_usuarios WHERE id_usuario = 'usuario' AND password = 'password'"
        cursor = db.cursor()
        cursor.execute(datosLogin)


app = QtGui.QApplication(sys.argv)
#window.resize( 350,210)
#window.move(450,250)
#window.setWindowTitle("TM Administrador - Login")
#window.show()
loginit = entrar()
loginit.show()
sys.exit(app.exec_()) 

我收到了这个错误:

  

cursor = db.cursor()NameError:未定义全局名称“db”

1 个答案:

答案 0 :(得分:0)

您已定义了db' db'在def basedatos(self)中:所以当你试图访问其他函数内部时,它没有在那里定义,所以你得到了那个错误。您可以全局定义以解决该错误。我自己也是一个菜鸟,所以不确定' pythonic'也就是说,这就是你为什么会得到错误的原因。