【问题标题】:Invalid syntax in executing SQL query using python [closed]使用python执行SQL查询时语法无效[关闭]
【发布时间】:2020-04-26 16:34:52
【问题描述】:

我正在尝试在 python 中使用 pymysql 运行以下 SQL 查询

cursor.execute(""SELECT count(1) from user_login WHERE user_id="+username + "and password="+password"")

这里 username=abc 和 password=xyz 是有值的变量

我知道引号有问题。有人可以建议我这样做的正确方法吗?

【问题讨论】:

  • 你在查询的开头和结尾多了一个"

标签: python mysql sql mysql-python pymysql


【解决方案1】:

直接的问题是您的用户名和密码输入没有正确地用单引号转义。但是,不要手动执行此操作;相反,使用准备好的语句:

sql = "SELECT COUNT(1) FROM user_login WHERE user_id = %s AND password = %s"
cursor.execute(sql, (username, password,))

一个附带问题:我看到您正在将一些密码输入直接与您的用户表的password 列进行比较,这意味着您正在存储明文密码。这是一个很大的安全漏洞,您应该对所有密码进行哈希处理,然后将哈希值仅存储在表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多