Rozumiem, że poprawny sposób sformatować kwerendy SQL w Pythonie jest tak:Jak umieścić sparametryzowane zapytanie sql w zmiennej, a następnie wykonać w Pythonie?
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3)
tak, że uniemożliwia SQL injection. Moje pytanie brzmi, czy istnieje sposób na umieszczenie zapytania w zmiennej, a następnie wykonanie go? Próbowałem tego przykładu poniżej, ale otrzymałem błąd. Czy można to zrobić?
sql="INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(sql)
dlaczego użyłeś ',' zamiast '%'? Na przykład, aby to zrobić: 'sql_and_params =" WSTAW DO WARTOŚCI tabeli (% s,% s,% s) "% (var1, var2, var3)' – bzupnick
@bzupnick za pomocą prostego formatowania napisów (operator '%') lub substytucja potencjalnie umożliwiłaby wstrzyknięcie SQL, nie wspominając o tym, że w razie potrzeby nie dodawał cudzysłowów do literałów. Sparametryzowane zapytania są znacznie lepsze od zapytań sformatowanych/podstawionych. –