gpt4 book ai didi

mysql - QSql 连接并从数据库示例中读取? - 未加载驱动程序

转载 作者:可可西里 更新时间:2023-11-01 07:23:37 26 4
gpt4 key购买 nike

我最近开始发现需要从 __mysql 模块更改为 PyQt 的 QSql,但不知道从哪里开始。我想做的(现在)就是从数据库中读取并打印结果。这是我得到的最远的,但我不断收到从 query.exec_() 函数返回的“驱动程序未加载驱动程序未加载”错误。

请帮忙!

db = QSqlDatabase.addDatabase("QMYSQL")

db.setHostName ( db_host )
db.setUserName ( db_user )
db.setPassword ( db_passwd )
db.setDatabaseName ( db_db )
db.setPort ( db_port )

db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1")
db.open()

defaultDB = QSqlDatabase.database()
query = QSqlQuery("SELECT * FROM Users")

qe = query.exec_()
print "query exec" , query.exec_()
if not qe: # if error
print QSqlQuery.lastError( query ).text()
else: # else display returned values
while query.next():
print "query value" , query.value(0).toString()


db.close()

最佳答案

AAAAHH!!!这总是会发生!面对一个问题坐了一天,最后决定发布并询问问题,发布问题大约 30 分钟后,您就会找到解决方案!

对于那些感兴趣的人,我遇到了与 this guy 相同的问题.

基本上,您必须在执行 sql 代码之前创建一个 QApplication 实例...即

# this little monkey has to be here
app = QApplication(sys.argv)


# rest of the code
db = QSqlDatabase.addDatabase("QMYSQL")

db.setHostName ( db_host )
db.setUserName ( db_user )
db.setPassword ( db_passwd )
db.setDatabaseName ( db_db )
db.setPort ( db_port )

db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1")
db.open()

defaultDB = QSqlDatabase.database()
query = QSqlQuery("SELECT * FROM Users")

qe = query.exec_()
print "query exec" , query.exec_()
if not qe: # if error
print QSqlQuery.lastError( query ).text()
else: # else display returned values
while query.next():
print "query value" , query.value(0).toString()


db.close()

关于mysql - QSql 连接并从数据库示例中读取? - 未加载驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com