-4

I am trying to run the below SQL query using pymysql in python

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

Here username=abc and password=xyz are variables with values

I know there is a problem with quotation marks.Can someone suggest me the right way to do this?

Nishanth
  • 55
  • 1
  • 1
  • 6

1 Answers1

0

The immediate problem is that your username and password inputs are not being properly escaped in single quotes. But, don't do that manually; instead, use a prepared statement:

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

A side problem: I see that you are comparing some password input directly against the password column of your user table, which would imply that you are storing clear text passwords. This is a big security vulnerability, and you should instead be hashing all passwords, and then storing the hash only in the table.

Tim Biegeleisen
  • 502,043
  • 27
  • 286
  • 360