我正在使用Python学习数据库和数据库管理,我正在疯狂地使用一行代码从Python解释器填充数据库中的多个列。 正如你在这里看到的那样 https://docs.python.org/2/library/sqlite3.html
如果要从python解释器中获取的代码行(比如字符串列)填充表的列,则必须使用的命令是
c.execute('''INSERT INTO
tableName
(columnName) VALUES('%s')
''' % pythonVariable )
如何使用some命令填充多列?我试过很多方面,比如
c.execute('''INSERT INTO
tableName
(columnName1, columnName2) VALUES('%s', '%s')
''' % pythonVariable1 pythonVariable2 )
或者只是按照此处的报告编写两次命令行
c.execute('''INSERT INTO
tableName
(columnName1) VALUES('%s')
''' % pythonVariable1 )
c.execute('''INSERT INTO
tableName
(columnName2) VALUES('%s')
''' % pythonVariable2 )
但我和他们两个都失败了,我对一个如此愚蠢的问题感到疯狂,你能建议我使用正确的代码吗?
答案 0 :(得分:2)
我不会遵循@Flippy的建议。
c.execute("insert into tableName values ('%s', '%s')" % (var1, var2))
使用字符串格式将查询参数传递到查询中并不是一个好主意 - 您变得容易受到SQL injection attack的攻击,并且可能会遇到类型转换问题。
相反,参数化查询:
c.execute("""
INSERT INTO
tableName
VALUES
(?, ?)
""", (var1, var2))
conn.commit()