sql >> Databasteknik >  >> RDS >> Mysql

python mysql hämta fråga

Detta förvirrar nästan alla som arbetar med MySQLDB. Du skickar argument till exekveringsfunktionen, gör inte pythonsträngbyte. %s i frågesträngen används mer som en förberedd sats än en pythonsträngsersättning. Detta förhindrar också SQL-injektion eftersom MySQLDB kommer att göra flykten åt dig. Som du hade det tidigare (med % och strängsubstitution) är du sårbar för injektion.

  1. Använd inte citattecken. MySQLDB kommer att placera dem där (om det behövs).
  2. Använd en istället för en %. Återigen, du skickar en tupel som ett argument till exekveringsfunktionen.

    self.dbc.execute("välj * från bil där reg=%s" , (reg,))



  1. WHERE-villkorsproblem i SQL

  2. Sök med kommaseparerat värde mysql

  3. Assembly 'Microsoft.SqlServer.Types' version 10 eller högre kunde inte hittas

  4. Är det möjligt att infoga data i en MySQL-vy?