MySQL/Python -> 语句中占位符的语法错误?

MySQL/Python -> Wrong Syntax for Placeholder in Statements?

我正在尝试在 insert-statement 中使用占位符。

我正在使用 PyCharm/Python 3.6、MySQL-Database 和 mysql.connector(不知道具体是哪一个。)

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

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

标题是一个字符串。

这是插入的内容,但我需要将 titel-string 插入该行。

删除 values-braces 中的 ' ' 时,PyCharm 给我一个错误 MySQL-syntax。

在这种情况下如何使用占位符?我怎么能使用更多的占位符,例如在插入多列时?研究没有帮助。

您需要从 %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,)