在Qtsql PyQT4中将列名和值添加为变量

时间:2016-03-08 01:50:08

标签: python sql pyqt4

我正在尝试向SQL数据库表添加值。但我想使用列名和值作为变量。 Python控制台显示此代码没有错误。但是数据库表没有变化。意味着没有插入发生。我使用的是Python,PyQt4和SQLite3。有没有办法做到这一点。

nameentry = "John Doe"
columnName = "Name"

self.query.exec('''INSERT INTO MainTable {cn} VALUES {dv};'''.format(cn=tuple(columnName),dv=tuple(nameentry)))
我到处搜索。但我没有得到答案。 这是我的表 Simple Table

1 个答案:

答案 0 :(得分:0)

您的查询字符串是完整垃圾:

>>> nameentry = "John Doe"
>>> columnName = "Name"
>>> '''INSERT INTO MainTable {cn} VALUES {dv};'''.format(cn=tuple(columnName),dv=tuple(nameentry))
"INSERT INTO MainTable ('N', 'a', 'm', 'e') VALUES ('J', 'o', 'h', 'n', ' ', 'D', 'o', 'e');"

也许你的意思更像是:

>>> '''INSERT INTO MainTable {cn} VALUES {dv};'''.format(cn=columnName,dv=(nameentry,))
"INSERT INTO MainTable Name VALUES ('John Doe',);"

但是我不确定它是否会起作用,因为值中有一个尾随逗号。所以你可能不得不尝试这个:

>>> '''INSERT INTO MainTable {cn} VALUES ({dv!r}) ;'''.format(cn=columnName,dv=nameentry)
"INSERT INTO MainTable Name VALUES ('John Doe') ;"