Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Python:prática recomendada e maneira mais segura de se conectar ao MySQL e executar consultas


Para evitar injeções, use execute com %s no lugar de cada variável, então passe o valor por meio de uma lista ou tupla como o segundo parâmetro de execute . Aqui está um exemplo da documentação :
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

Observe que isso está usando uma vírgula , não % (que seria uma substituição direta de string, sem escape). Não faça isso :
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""" % (max_price,))

Além disso, você não deve usar aspas simples em torno do titular da posição ('%s' ) se o parâmetro for uma string, pois o driver os fornece.