尝试使用用户输入删除时出现 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 - 删除注册用户帐户时出现“未授权”错误

使用 Python 连接时出现雪花角色错误

在 Python 中使用 PyMysql 连接 MariaDB 时出现问题

尝试使用特定用户通过 ssh 登录时出现“写入失败:管道损坏”