sql >> Databáze >  >> RDS >> Mysql

Python mysql.connector.errors. %s předáno do SQL dotazu s uvozovkami

Skutečnost, že MySQLPython používá standardní značku formátu řetězce ("%") pro zástupné symboly proměnných v dotazech, může být matoucí.

Zástupný symbol pro dotazy v db-api pythonu je pro hodnoty používá se v where klauzule a insert a update příkazy a jsou správně upraveny / escapovány / citovány db-api, aby se zabránilo vkládání SQL atd. Neměly by být použity pro názvy tabulek nebo polí.

Zde tedy chcete vytvořit dotaz pomocí formátování řetězce:

sql =  'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)

Od db_name[0] pochází z důvěryhodného zdroje, není zde žádný bezpečnostní problém.




  1. MySQL:Pomalý protokol; připojit využití procesoru

  2. SQL Server:Rozdělit operaci

  3. Vytvářejte třídy C# založené na tabulce MySQL

  4. Iterace přes celé číslo[] v PL/pgSQL