【问题标题】:Python connector error on trying to delete using user input尝试使用用户输入删除时出现 Python 连接器错误
【发布时间】: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 行
  • 知道错误在第一行,也许你的连接字符串有问题?你应该发布更多。

标签: python mysql syntax-error mysql-connector


【解决方案1】:

您需要将查询参数作为 元组 传递给cursor.execute(),即使是单个参数也是如此。试试这个:

sql = "DELETE FROM users WHERE email = %s"
cursor.execute(sql, (email,))

【讨论】:

  • 啊!!非常感谢!!我不知道我是如何在文档中错过的。
  • 愚蠢的语法错误,比如缺少元组中的逗号,让我很头疼。看到正确的代码并注意到我的错误总是很高兴!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
相关资源
最近更新 更多