尝试使用用户输入删除时出现Python连接器错误

尝试使用用户输入删除时出现Python连接器错误,python,mysql,syntax-error,mysql-connector,Python,Mysql,Syntax Error,Mysql Connector,我用类似的语法实现了大多数其他基本的数据库事务,包括insert、update、select,但在尝试删除时,我发现了错误 mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“%s”附近要使用的正确语法 正确的语法是什么?我必须根据用户输入删除。这是我的代码的缩写版本,不包括插入、选择、更新部分。:/br/> elif (choice == 4): mail=r

我用类似的语法实现了大多数其他基本的数据库事务,包括insert、update、select,但在尝试删除时,我发现了错误

mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“%s”附近要使用的正确语法

正确的语法是什么?我必须根据用户输入删除。这是我的代码的缩写版本,不包括插入、选择、更新部分。:/br/>

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 = "DELETE FROM users WHERE email = %s"
cursor.execute(sql, (email,))

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

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

这就是你的全部代码吗?sql行不在第1行知道错误在第一行,可能您的连接字符串有一些问题?你应该发布更多。这就是你的全部代码吗?sql行不在第1行知道错误在第一行,可能您的连接字符串有一些问题?你应该发布更多。啊!!谢谢!!我不知道我是怎么在文档中漏掉的。像元组中漏掉逗号这样愚蠢的语法错误让我头疼。看到正确的代码并注意到我的错误总是一种快乐!谢谢!!谢谢!!我不知道我是怎么在文档中漏掉的。像元组中漏掉逗号这样愚蠢的语法错误让我头疼。看到正确的代码并注意到我的错误总是一种快乐!谢谢