sql >> Databasteknik >  >> RDS >> Mysql

Python utmanar strängkodning

Du bör inte använda .format() för att inkludera värden i en sql-fråga. Använd sql-parametrar istället:

sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))

cursor.execute(sql, providers)

där providers är den ursprungliga listan.

Tanken är att generera en SQL-fråga med in testa med SQL-parametersyntax som matchar antalet leverantörer i din lista:WHERE provider in (%s, %s) ... för en lista med två leverantörer. Ja, MySQLdb sql-parametersyntaxen ekar den gamla pythonformateringssyntaxen, men är inte samma sak.




  1. Skillnaden mellan en användare och en inloggning i SQL Server

  2. Lösenordsåterställningssystem i PHP

  3. mysql sammanfoga frågeordning med två kolumner

  4. Återställ en SQLite-databas