尝试使用用户输入删除时出现 Python 连接器错误
Posted
技术标签:
【中文标题】尝试使用用户输入删除时出现 Python 连接器错误【英文标题】:Python connector error on trying to delete using user input 【发布时间】:2016-10-29 11:49:11 【问题描述】:我已经使用类似的语法实现了大多数其他基本数据库事务,包括插入、更新、选择,但是在尝试删除时,我得到了错误
mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“%s”附近使用正确的语法
正确的语法是什么?我必须根据用户输入删除。这是我的代码的缩短版本,减去插入、选择、更新部分。:
elif (choice == 4):
mail=raw_input('Enter email of user to be deleted:')
print 'Deleting..'
delete_user_details(mail)
def delete_user_details(email):
sql = "DELETE FROM users WHERE email = %s"
cursor.execute(sql,email)
【问题讨论】:
这就是你的全部代码吗? sql 行不在第 1 行 知道错误在第一行,也许你的连接字符串有问题?你应该发布更多。 【参考方案1】:您需要将查询参数作为 元组 传递给cursor.execute()
,即使是单个参数也是如此。试试这个:
sql = "DELETE FROM users WHERE email = %s"
cursor.execute(sql, (email,))
【讨论】:
啊!!非常感谢!!我不知道我是如何在文档中错过的。 愚蠢的语法错误,比如缺少元组中的逗号,让我很头疼。看到正确的代码并注意到我的错误总是很高兴!谢谢以上是关于尝试使用用户输入删除时出现 Python 连接器错误的主要内容,如果未能解决你的问题,请参考以下文章
关于Mysql数据库连接Navicat时出现1251报错问题的解决方法
执行 mochawesome-merge 时出现“JSON 输入意外结束”
XMPPFramework - 删除注册用户帐户时出现“未授权”错误