【问题标题】:Variable column name in SQL lite and PythonSQLite 和 Python 中的变量列名
【发布时间】:2016-07-17 11:44:43
【问题描述】:

正如标题所说,我的问题是如何在 Pyhton 中使用的 SQL lite 中创建变量列。

这是我的代码,向您展示我的意思:

#Table with variables
def dynamic_data_entry(list_name, num, column):
    element_name = list_name[num]
    cur.execute("INSERT INTO myliltable (column) VALUES (?)", element_name)
    con.commit()

我想在调用函数时插入列名,这样我就可以将该函数用于多个列,但我不断收到错误,即列“列”不存在。 有没有另一种方法可以做到这一点,所以我可以在调用函数时更改设置列名,或者只是更改 SQL 部分。

如果已经有关于此的主题,我将不胜感激,如果您可以链接它,那么我可以自己阅读它(我找不到与此主题类似的任何内容,但有效)。

提前感谢,感谢您的帮助

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

    您需要使用字符串的format()方法将列名插入到SQL字符串中:

    cur.execute("INSERT INTO myliltable ({}) VALUES (?)".format(column),
                element_name)
    

    您可以在Python docs找到更多信息。

    【讨论】:

    • 这是否会引入任何类型的安全漏洞,因为官方 python sqlite3 文档说不要在 sql 语句中使用字符串方法。虽然,只要这不是最终用户可访问的变量,它可能不会具有相同类型的安全隐患。我的理解正确吗?
    猜你喜欢
    • 2013-07-09
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多