我正在尝试向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
答案 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') ;"