把各种变量的MySQL使用Python,不工作(Inserting Variables MySQL

2019-09-02 17:11发布

我想插入变量bobdummyVar到我的表, logger 。 现在,从我可以告诉所有我需要做的是,清楚我有以下,但是这并没有插入任何东西我的表在所有。 如果我硬代码应该怎么写(使用'example' ,然后将其写入例如表,所以我对插入连接和语法是正确的这一点)。 任何帮助将超过赞赏!

conn = mysql.connector.connect(user='username', password='password!',
                              host='Host', database='database')

cursor = conn.cursor()

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit)
conn.commit()

我也试过这样:

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%(bob)s,(Hello))
    """, (bob))

和:

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit, (bob, dummyVar))
conn.commit()


cursor.execute(loggit, (bob, dummyVar))

conn.commit()

Answer 1:

你需要通过SQL语句和参数作为单独的参数:

cursor.execute(loggit[0], loggit[1])

或者使用可变参数的语法(一个图示, * ) :

cursor.execute(*loggit)

您的版本试图在包含SQL语句和绑定参数作为唯一的参数,其中一个元组通过.execute()函数希望找到刚才的SQL语句的字符串。

这是更常见的,以保持两个独立的,也许只存储在SQL语句中的变量:

loggit = """
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """
cursor.execute(loggit, (bob, dummyVar))


文章来源: Inserting Variables MySQL Using Python, Not Working