这个问题已经被问到了bevor(here),但没有答案对我有用,不幸的是,我不允许添加评论,因为我是新来的。
我不知道还能做什么,只想再问一次这个问题,对不起,请告诉我正确的方法。
我想将Python变量插入到由Python变量命名的MySQL表中。
我想,创建表的方法是:

curs.execute ("""CREATE TABLE IF NOT EXISTS %s LIKE table""" %(today))

我还发现要插入这样的值:
curs.execute (
        """ INSERT INTO table (column)
            VALUES (%s) """,
            (variable))

现在我试着
today = "table_name"
variable = "name"
curs.execute (
        """ INSERT INTO %s (column)
            VALUES (%s) """,
            ( table, variable ))

我会得到这个错误:
(1064,“您的SQL语法有错误;请查看对应于MySQL服务器版本的手册,以获取在“table_name”(第1行的列…)附近使用的正确语法”
我也试过:
today = "table_name"
variable = "name"
curs.execute (
            """ INSERT INTO %s (column)
                VALUES (%s) """
                % ( table, variable ))

我会得到这个错误:
(1054,“字段列表”中的未知列“name”)
我想弦有点问题…
谢谢你的回答!

最佳答案

尝试用%s替换?,并让sqlite处理插入操作。(还有助于防止web应用程序中的SQL注入攻击)

table_name = "today"
variable = "name"
curs.execute ("INSERT INTO ? (column) VALUES (?)",(table_name, variable))

08-20 04:05