使用python执行SQL查询时语法无效[关闭]
Posted
技术标签:
【中文标题】使用python执行SQL查询时语法无效[关闭]【英文标题】:Invalid syntax in executing SQL query using python [closed] 【发布时间】: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 是有值的变量
我知道引号有问题。有人可以建议我这样做的正确方法吗?
【问题讨论】:
你在查询的开头和结尾多了一个"
。
【参考方案1】:
直接的问题是您的用户名和密码输入没有正确地用单引号转义。但是,不要手动执行此操作;相反,使用准备好的语句:
sql = "SELECT COUNT(1) FROM user_login WHERE user_id = %s AND password = %s"
cursor.execute(sql, (username, password,))
一个附带问题:我看到您正在将一些密码输入直接与您的用户表的password
列进行比较,这意味着您正在存储明文密码。这是一个很大的安全漏洞,您应该对所有密码进行哈希处理,然后将哈希值仅存储在表中。
【讨论】:
以上是关于使用python执行SQL查询时语法无效[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Python 返回“SyntaxError:无效的语法 sys 模块”[关闭]