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

consulta de busca python mysql


Isso confunde quase todos que trabalham com MySQLDB. Você está passando argumentos para a função execute, não fazendo substituição de string python. O %s na string de consulta é usado mais como uma instrução preparada do que como uma substituição de string python. Isso também evita a injeção de SQL, pois o MySQLDB fará o escape para você. Como você tinha antes (usando % e substituição de string), você está vulnerável à injeção.
  1. Não use aspas. MySQLDB irá colocá-los lá (se necessário).

  2. Use um , em vez de um %. Novamente, você está passando uma tupla como argumento para a função execute.

    self.dbc.execute("select * from car where reg=%s" , (reg,))