带绑定的PyQt SQL查询

2024-10-01 09:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在PyQt5中编写一个SQL查询来更新表中的一些数据,但无法使查询正常工作。我读过无数的论坛,但据我所知,我的代码是正确的。我也把文档从头读到尾,所以可能我遗漏了什么?在

我使用的是PyQt5、python3.5和SQLITE。以下代码(未显示lastError/lastQuery):

self.sqlWrite('ct','MarkerSize',123)

def sqlWrite(self,tbl,var,val):
        query = QtSql.QSqlQuery(self.db) # First create query instance.
        # Prepare query with placeholders, then bind values.
        query.prepare('UPDATE :tbl SET value=:val WHERE property=:var')
        query.bindValue(0,tbl)
        query.bindValue(1,val)
        query.bindValue(2,var)
        # Finally execute query.
        query.exec_()

…产生错误:

^{pr2}$

我把情节弄丢了吗?我错过了什么?在

提前谢谢。在


Tags: 数据代码文档selfsqlitesqlvarval
1条回答
网友
1楼 · 发布于 2024-10-01 09:25:50

表名不是参数,因此不能将值绑定到它。占位符用于文本值,而不是任意字符串。对于后者,应仅使用法线字符串插值:

    query.prepare('UPDATE "%s" SET value=:val WHERE property=:var' % tbl)
    query.bindValue(':val', val)
    query.bindValue(':var', var)

要获得更通用的转义标识符的方法,请使用查询的driver

^{pr2}$

相关问题 更多 >