使用 python 执行 SQL 查询时语法无效

Invalid syntax in executing SQL query using python

我正在尝试 运行 在 python

中使用 pymysql 进行以下 SQL 查询
cursor.execute(""SELECT count(1) from user_login WHERE user_id="+username + "and password="+password"")

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

我知道引用有问题marks.Can有人建议我这样做的正确方法吗?

眼前的问题是您输入的用户名和密码没有用单引号正确转义。但是,不要手动这样做;相反,使用准备好的语句:

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

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