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

zapytanie pobierania mysql w Pythonie

To myli prawie każdego, kto pracuje z MySQLDB. Przekazujesz argumenty do funkcji execute, nie wykonując podstawiania ciągów Pythona. %s w ciągu zapytania jest używany bardziej jak przygotowana instrukcja niż podstawienie ciągu Pythona. Zapobiega to również wstrzykiwaniu SQL, ponieważ MySQLDB wykona za Ciebie ucieczkę. Jak już wcześniej (używając % i podstawiania ciągów), jesteś podatny na wstrzyknięcie.

  1. Nie używaj cudzysłowów. MySQLDB umieści je tam (w razie potrzeby).
  2. Użyj a zamiast %. Ponownie przekazujesz krotkę jako argument do funkcji execute.

    self.dbc.execute("wybierz * z samochodu, gdzie reg=%s" , (reg,))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można przekonwertować wartości daty/godziny MySQL na System.DateTime

  2. Uzyskaj dane godzinowe z przerwami od północy do teraz

  3. Użyj szablonów Cloud Formation, aby uruchomić instancje MySQL na RDS

  4. Ukończony projekt Java, teraz tworzenie pliku jar lub .exe (z bazą danych)

  5. MySQL Zapytanie o dwa różne warunki dla różnej liczby w 1 zapytaniu