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,)
我正在尝试在 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,)