Pierwsza opcja to prawidłowy sposób umieszczania parametrów zapytania w zapytaniu - nazywa się to zapytanie parametryczne . W tym przypadku pozwalasz sterownikowi bazy danych na zmianę parametrów zapytania, bezpiecznie wstawiasz je do zapytania i obsługuje konwersje typu Python na MySQL.
Otrzymany błąd oznacza, że nie można przekonwertować jednego z ID
, Record
, Latitude
, Longitude
lub code
wartości parametrów do prawidłowego typu bazy danych MySQL. Aby być konkretnym, zobacz typy zmiennych, które opublikowałeś:
ID <type 'unicode'>
Record <type 'unicode'>
Latitude <class 'bs4.element.NavigableString'>
Longitude <class 'bs4.element.NavigableString'>
code <type 'unicode'>
Problem dotyczy Latitude
i Longitude
- są to BeautifulSoup
NavigableString
instancje klas - konwerter MySQL ma trudności ze zrozumieniem, jak przekonwertować NavigableString
obiekt do prawidłowego typu MySQL. Konwertuj je na ciągi wyraźnie wcześniej:
update = """
INSERT INTO
myDB.newtable
(ID,Record,Latitude,Longitude,code)
VALUES
(%s,%s,%s,%s,%s)
"""
cursor2.execute(update, (ID, Record, str(Latitude), str(Longitude), code))