1 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
在 Python 中使用參數(shù)的正確方法是在execute()調(diào)用中傳遞值,而不是將值插入到 SQL 查詢中。
除了您的情況下的表名等標(biāo)識符。
sql_select_Query = """
INSERT `{0}` (age, city, gender, UniqueId)
VALUES (%s, %s, %s, %s)
ON DUPLICATE KEY UPDATE
age=VALUES(age), city=VALUES(city), gender=VALUES(gender)
""".format(table_name)
cursor.execute(sql_select_Query, ('877', '2', '1', '2898989'))
另請參閱MySQL 參數(shù)化查詢
你忘了)后面VALUES(age。也許這只是您將問題轉(zhuǎn)錄到 Stack Overflow 中的一個(gè)錯(cuò)字。我已經(jīng)在上面的示例中修復(fù)了它。
您的 INSERT 語句設(shè)置height列,但它不是您插入的元組的一部分。我在上面的示例中刪除了它。如果要height在 UPDATE 子句中,則需要將其包含在元組中并在參數(shù)中傳遞一個(gè)值。
此外,我在表名周圍加上反引號,以防表名是保留關(guān)鍵字或包含空格或其他內(nèi)容。
添加回答
舉報(bào)