如何纠正 mysql-connector 中的错误,我尝试将多条记录同时添加到 MySQL 数据库中?

How do I rectify the error in mysql-connector where I try to add multiple records at the same time into a MySQL Database?

我正在尝试使用 mysql-connector-python 将多条记录添加到数据库中。我最初能够添加一条记录,但对于多条记录,此错误一直存在。

class DataBase:
def __init__(self):
    try:
        self.connection = mysql.connector.connect(host='xx.xxx.xx.xx',
                                                 database='XXX',
                                                 user='XXXX',
                                                 password='xxxx')
        
    except Error as error:
        print("Failed to connect: {}".format(error))
        

def store_into_table(self, df):
        
        mySql_insert_query = """INSERT INTO data ('data_id', 'a', 'b', 'c') VALUES ('%S','%S', '%S', '%S') """
        records_to_insert = df
        cursor = self.connection.cursor()
        cursor.executemany(mySql_insert_query, records_to_insert)
        self.connection.commit()
        print(cursor.rowcount, " Records inserted successfully into data table")

我传递给数据库实例的变量是:

data = [('101', 'name_1', '3', 'sample'), ('102', 'name_2', '5', 'sample_1')]

抛出异常:

    Traceback (most recent call last):

  File "/Users/dev/anaconda3/envs/sql/lib/python3.7/site-packages/mysql/connector/cursor_cext.py", line 317, in _batch_insert
    "Not all parameters were used in the SQL statement")

ProgrammingError: Not all parameters were used in the SQL statement


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "<ipython-input-123-44fdf194cd10>", line 1, in <module>
    db.store_into_table(data)

  File "/Users/dev/Detector/database.py", line 30, in store_into_table
    cursor.executemany(mySql_insert_query, records_to_insert)

  File "/Users/dev/anaconda3/envs/sql/lib/python3.7/site-packages/mysql/connector/cursor_cext.py", line 350, in executemany
    stmt = self._batch_insert(operation, seq_params)

  File "/Users/dev/anaconda3/envs/sql/lib/python3.7/site-packages/mysql/connector/cursor_cext.py", line 329, in _batch_insert
    "Failed executing the operation; %s" % err)

InterfaceError: Failed executing the operation; Not all parameters were used in the SQL statement

关于为什么这不起作用的任何线索?

试试这个:

mySql_insert_query = """INSERT INTO data (data_id, a, b, c) VALUES (%s, %s, %s, %s) """