我想将变量bob
和dummyVar
插入到我的表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()
答案 0 :(得分:2)
您需要将SQL语句和参数作为单独的参数传递:
cursor.execute(loggit[0], loggit[1])
或使用variable argument syntax (a splat, *
):
cursor.execute(*loggit)
您的版本尝试传入包含SQL语句的元组并将参数绑定为唯一参数,其中.execute()
函数期望只找到SQL语句字符串。
通常将两者分开并且可能只将SQL语句存储在变量中:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))