大家好,我目前正在我学校的一个 python 项目中工作。首先,我想明确说明我不是 Python 程序员(我只是被要求扑灭这个项目的火焰,因为没有其他人愿意,而且我很勇敢地答应了)。
我在这里有以下问题。我必须编写一个连接到现有 localhost MySQL 数据库的方法(我使用的是连接器版本 1.0.12 和 python 2.6),然后做一些非常基本的事情。参数由 GTK 编写的 GUI 发送(我没有编写那个界面)。所以我这样写了我的方法:
def compMySQL(self, user, database, password, db_level, table_level, column_level):
sql_page_textview = self.mainTree.get_widget('sql_text_view')
sql_page_textview.modify_font(pango.FontDescription("courier 10"))
sql_page_buffer = sql_page_textview.get_buffer()
#Gonna try connecting to DB
try:
print("Calling conn with U:{0} P:{1} DB:{2}".format(user,password,database))
cnxOMC = mysql.connector.connect(user, password,'localhost',database)
except:
print "Error: Database connection failed. User name or Database name may be wrong"
return
#More code ...
但是当我运行我的代码时,我得到了这个:
Calling conn with U:root P:PK17LP12r DB:TESTERS
Error: Database connection failed. User name or Database name may be wrong
而且我不知道为什么,因为发送的参数与打印的参数相同(告诉我其他人编写的 GUI 工作正常)并且它们是有效的登录参数。如果我直接对登录参数进行硬编码以使用 GUI 一切正常并且功能正常执行;以下代码运行良好且流畅:
def compMySQL(self, user, database, password, db_level, table_level, column_level):
sql_page_textview = self.mainTree.get_widget('sql_text_view')
sql_page_textview.modify_font(pango.FontDescription("courier 10"))
sql_page_buffer = sql_page_textview.get_buffer()
#Gonna try hardcoding
try:
#print("Calling conn with U:{0} P:{1} DB:{2}".format(user,password,database))
cnxOMC = mysql.connector.connect(user="root", password='PK17LP12r', host='localhost', database='TESTERS')
print 'No prob with conn'
except:
print "Error: Database connection failed. User name or Database name may be wrong"
return
#more code ...
控制台输出:
No prob with conn
有什么想法吗?这个要死我了。我只是在学习 Python,但我认为这个问题对于经验丰富的 Python 开发人员来说非常容易,因此我们将不胜感激。
提前致谢。