>语句中占位符的语法错误?

fzsnzjdm  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(356)

我正在尝试在insert语句中使用占位符。
我使用的是pycharm/python3.6,一个mysql数据库和mysql.connector(不知道具体是哪一个)

为什么下面的代码不起作用?

insert_stmt = "INSERT INTO mydb.datensatz (Titel) VALUES ('%s');"
data = (titel)
cursor.execute(insert_stmt, data)
cnx.commit()

titel是一个字符串。
这就是插入的内容,但我需要将titel字符串插入到该行中。

在删除大括号中的“”时,pycharm给出了一个错误的mysql语法。
在这种情况下如何使用占位符?如何使用更多的占位符,例如在插入多个列时?研究没有帮助。

uubf1zoe

uubf1zoe1#

您需要从中删除引号 %s 并确保参数是元组中的:

insert_stmt = "INSERT INTO mydb.datensatz (Titel) VALUES (%s);" # Removed quotes around %s
data = (titel,) # Added trailing comma to make tuple
cursor.execute(insert_stmt, data)
cnx.commit()

当元组中只有一个值时,必须包含尾随逗号: (item,)

相关问题