代码之家  ›  专栏  ›  技术社区  ›  jurh

PyMySQL:插入数据共享语句

  •  0
  • jurh  · 技术社区  · 7 年前

    我试图使用准备好的语句在数据库中插入数据。我在数据库中的所有列都是VARCHAR,但PyMySQL给出了以下错误:

    Not all arguments converted during string formatting  
    

    所有变量都是从XML文件中解析出来的子节点。变量示例:

    try:
        description1 = product.getElementsByTagName('description')[0]
        description = description1.childNodes[0].data
    except IndexError:
        print('No description')
        description = 'None'
    

    当我插入没有准备好的语句的数据时,效果很好。但是我想对转义字符使用准备好的语句。

    这是我准备的报表代码:

            sql = """INSERT INTO Studystore(daisycon_unique_id, title, author, isbn, price, link, image_location, category, product_condition, description, in_stock, in_stock_amount, price_shipping, language, book_edition, number_of_pages, status, insert_date, update_date)
              VALUES ('%s')"""
    
            args = (str(daisycon_unique_id), str(title), str(author), str(isbn), str(price), str(link), str(image_location), str(category), str(product_condition), str(description), str(in_stock), str(in_stock_amount), str(price_shipping), str(language), str(book_edition), str(number_of_pages), str(status), str(insert_date), str(update_date),)
    
            try:
    
                # Execute the SQL command
                cursor.execute(sql, args)
                # Commit your changes in the database
                db.commit()
    
            except Exception as e: 
                print(e)
    )
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   jurh    7 年前

    我看到出了什么问题。 这是工作代码:

    # Prepare SQL query to INSERT a record into the database.
        sql = """INSERT INTO Studystore(daisycon_unique_id, title, author, isbn, price, link, image_location, category, product_condition, description, in_stock, in_stock_amount, price_shipping, language, book_edition, number_of_pages, status, insert_date, update_date)
          VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")"""
    
        args = (daisycon_unique_id, title, author, isbn, price, link, image_location, category, product_condition, description, in_stock, in_stock_amount, price_shipping, language, book_edition, number_of_pages, status, insert_date, update_date,)
    
        try:
    
            # Execute the SQL command
            cursor.execute(sql, args)
            # Commit your changes in the database
            db.commit()
    
        except Exception as e:
            print(e)