sql >> Database teknologi >  >> RDS >> Mysql

Mislykket behandling af format-parametre med mysql.connector i Python

Den første mulighed er den korrekte måde at indsætte forespørgselsparametre i forespørgslen på - det kaldes en parameteriseret forespørgsel . I dette tilfælde lader du databasedriveren undslippe forespørgselsparametrene, indsætte dem sikkert i forespørgslen og håndtere konverteringer af Python-til-MySQL-typen.

Fejlen du får betyder, at den ikke kunne konvertere et af ID , Record , Latitude , Longitude eller code parameterværdier til en gyldig MySQL-databasetype. For at være specifik, se de variabeltyper, du har indsendt:

ID        <type 'unicode'> 
Record    <type 'unicode'>
Latitude  <class 'bs4.element.NavigableString'>
Longitude <class 'bs4.element.NavigableString'>
code      <type 'unicode'>

Problemet er med Latitude og Longitude - de er BeautifulSoup 's NavigableString klasseforekomster - MySQL-konverteren har problemer med at forstå, hvordan man konverterer en NavigableString objekt til en gyldig MySQL-type. Konverter dem eksplicit til strenge på forhånd:

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))



  1. Sådan finder du waitevent History of the Oracle session

  2. Django Kan ikke tilføje eller opdatere en underordnet række:en fremmednøglebegrænsning mislykkes

  3. Sådan bestemmes værdier for manglende måneder baseret på data fra tidligere måneder i T-SQL

  4. Sådan får du den aktuelle dato i MySQL