Mysql
 sql >> база данни >  >> RDS >> Mysql

Неуспешна обработка на формат-параметри с mysql.connector в Python

Първата опция е правилният начин за поставяне на параметри на заявката в заявката - нарича се параметризирана заявка . В този случай вие позволявате на драйвера на базата данни да избягва параметрите на заявката, безопасно да ги вмъква в заявката и да обработва преобразуванията от тип Python в MySQL.

Грешката, която получавате, означава, че не може да преобразува един от ID , Record , Latitude , Longitude или code стойности на параметри към валиден тип база данни MySQL. За да бъдете конкретни, вижте типовете променливи, които сте публикували:

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

Проблемът е с Latitude и Longitude - те са BeautifulSoup NavigableString екземпляри на клас - преобразувателят на MySQL има затруднения да разбере как да конвертира NavigableString обект във валиден тип MySQL. Преобразувайте ги в низове изрично предварително:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявката не е вмъкната, когато PHP променливата съдържа единични кавички

  2. Mysql функция, връщаща стойност от заявка

  3. MYSQLI::prepare() , грешка при използване на заместител :something

  4. Грешка при миграция на Laravel:Синтактична грешка или нарушение на достъпа:1071 Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 767 байта

  5. Дублиране, копиране или архивиране на таблици в MySQL, MariaDB, Oracle, PostgreSQL, DB2 и SQLite със Създаване на таблица като SQL