Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Python mysql.connector.errors. %s przekazany do zapytania SQL z cudzysłowami

Fakt, że MySQLPython używa standardowego znacznika formatu ciągu znaków ("%") dla zmiennych zastępczych w zapytaniach, może być mylący.

Symbole zastępcze zapytań w db-api Pythona dotyczą wartości używane w where klauzule i insert i update instrukcji i są odpowiednio usankcjonowane / zmienione / cytowane przez db-api, aby uniknąć wstrzyknięć SQL itp. Nie powinny być używane do nazw tabel lub pól.

Więc to, czego chcesz tutaj, to zbudowanie zapytania przy użyciu formatowania ciągu:

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

Od db_name[0] pochodzi z zaufanego źródła, tutaj nie ma problemu z bezpieczeństwem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Odmowa dostępu dla użytkownika 'root'@'localhost' zaraz po instalacji na macOS

  2. Odczytywanie dużej ilości rekordów MySQL do Javy

  3. Wiele baz danych i transakcji

  4. Pobieranie rangi wiersza w OrderBy desc Eloquent zapytanie, Jak mogę sprawić, aby to zapytanie działało w laravel 5.5 eloquents?)

  5. Błędy uprawnień Mysql z „ładowaniem danych”