[sqlite3和python]:如何填充表

时间:2016-01-17 12:04:14

标签: python sqlite

我正在使用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 )

但我和他们两个都失败了,我对一个如此愚蠢的问题感到疯狂,你能建议我使用正确的代码吗?

1 个答案:

答案 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()